2009-10-04 11 views
1

Bonjour, J'ai besoin d'aide pour implémenter une logique en utilisant le contrôle Gridview dans C#.À propos d'ASP.NET Gridview

J'ai un gridview et il a beaucoup de lignes. Chaque ligne a un bouton à cliquer pour l'utilisateur. Cliquez sur chaque bouton pour mettre à jour l'enregistrement sélectionné dans la base de données. Maintenant, une fois que la ligne est mise à jour, j'ai besoin de cacher ce bouton pour empêcher la réaction juste pour cette rangée particulière.
1. Si j'utilise cette

<asp:CommandField ShowEditButton="True" EditText="select" /> 

, je ne peux pas faire cette peau. 2. Si j'utilise cette

<asp:TemplateField HeaderText="Your Action"> 
    <ItemTemplate> 
    <asp:Button 
     ID="btnAccept" 
     runat="server" 
     Text="Accept" 
     OnClientClick="return confirm('Are you sure you want to Accept this offer?');" 
     onclick="btnAccept_Click" /> 
    </ItemTemplate> 
</asp:TemplateField> 

, je ne peux pas obtenir l'index de ligne sélectionnée. Je souhaite que j'ai éclairci ce que je veux demander. Merci d'avance.

Répondre

3

propriété de contrôle de l'utilisation du bouton CommandArgument spécifier l'utilisateur de la ligne cliquée:

<asp:TemplateField HeaderText="Your Action"> 
    <ItemTemplate> 
    <asp:Button 
     ID="btnAccept" 
     runat="server" 
     Text="Accept" 
     OnClientClick="return confirm('Are you sure you want to Accept this offer?');" 
     CommandName="Accept" 
     CommandArgument='<%# Eval("RowId") %>' 
     onclick="btnAccept_Click" /> 
    </ItemTemplate> 
</asp:TemplateField> 

A code derrière:

void btnAccept_Click(Object sender, CommandEventArgs e) 
{ 
    if (e.CommandName == "Accept") 
    { 
     string rowId = e.CommandArgument; 
    } 
} 
2

continue sur la solution Canavars pour 1):

void btnAccept_Click(Object sender, CommandEventArgs e) 
{ 
    if (e.CommandName == "Accept") 
    { 
     string rowId = e.CommandArgument; 
     ((Button)sender).Visible = false; 
    } 
}