2009-10-04 45 views
1

您好我需要帮助在c#中使用Gridview控件实现逻辑。关于ASP.NET Gridview

我有一个gridview,它有很多行。每行都有一个按钮供用户点击。在每个按钮上单击我正在更新数据库中选定的记录。现在一旦更新了行,我需要隐藏该按钮以防止仅针对该特定行的反应。
1.如果我用这个

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

,我不能让这个隐藏。 2.如果我用这个

<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> 

,我不能让所选行的索引。

我希望我已经清除了我想问的问题。提前致谢。

回答

3

使用Button控件的属性CommandArgument指定行用户点击:

<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> 

在后面的代码:

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

继续对1 Canavars溶液):

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