2017-07-06 3 views
-1

J'ai un gridview et je veux ajouter un bouton 'VIEW' qui redirige vers la page (Customers.aspx?CustomerID=). Chaque client a un ID et chaque ID est associé à un rapport. Je ne veux pas que l'ID apparaisse dans ma grille et je veux qu'elle soit cachée. En outre, je souhaite que ce bouton s'affiche uniquement si l'utilisateur est une catégorie "Admin" ou "Salesperson". Je suis là un moyen de lier mon CustomerID à une UserCategory pour générer des rapports pour chaque ID séparément.Bouton d'affichage avec instruction else if

J'ai essayé d'examiner d'autres messages, mais mon bouton ne redirige pas pour une raison quelconque. Quelqu'un peut-il m'aider s'il vous plaît comprendre ce que je fais mal ici ou si quelque chose me manque. Toute aide est la bienvenue. Merci.

<asp:TemplateField ShowHeader="False"> 
      <ItemTemplate> 
       <asp:Button ID="btnView" runat="server" CausesValidation="false" CommandName="Select" Text="VIEW" /> 
       </ItemTemplate> 
       <ControlStyle CssClass="button" /> 
      </asp:TemplateField> 



protected void btnView(object sender, EventArgs e) 
{ 
    Button button = (Button)sender; 
    GridViewRow row = (GridViewRow)button.NamingContainer; 
    Label lblCustomerID = (Label)row.FindControl("lblCustomerID"); 

    txtHFUserCategory.Value = Session["UserCategoryPC"].ToString(); 
    String strUserCat = MTProcs.GetSingleDatabaseResult("SELECT tblUsers.UserCategoryID FROM tblUsers WHERE UserID = " + txtHFUserID.Value); 
    if (strUserCat == "4" || strUserCat == "12") 
    { 
     ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", "window.open(Customers.aspx?CustomerID=" + lblLeadID.Text + "');", true); 

    } 
} 
+0

comment est l'utilisateur et les tables clients sont liés à la base de données? – ISHIDA

+0

Vous devrez joindre ces deux tables. Sinon, il ne sera pas efficace d'interroger la sous-table pour chaque ligne. – Win

+0

Voulez-vous que le '' existe dans le GridView? (c'est-à-dire dans une cellule d'une colonne) ou voulez-vous que ce soit juste sur la page quelque part? La réponse déterminera si vous devez utiliser un gestionnaire d'événement '_RowDataBound()' sur GridView, ou si vous avez juste besoin d'un if-then sur la page pour afficher ou masquer le bouton. – bradykey

Répondre

0

Salut, vous pouvez le faire en ajoutant simplement la propriété visible dans votre bouton comme

<asp:button ID="yourBtnID" runat="server" Text="WotEver" visible='<%# Convert.toInt(Eval("admin"))==1 && Convert.toInt(Eval("SALESPERSON"))==1 %>'/> 
+0

cette solution n'a pas fonctionné pour moi. –