【问题标题】:How to properly bind a DB record ID to a GridView Row (ASP GridView)?如何正确地将数据库记录 ID 绑定到 GridView 行(ASP GridView)?
【发布时间】:2017-01-02 09:52:04
【问题描述】:

Context 是一个老式的 ASP 2.0 应用程序。

我有一个可以在全球范围内正常工作的 gridView:

<asp:GridView ID="GV" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="DS" AllowPaging="true">
    ...
    <asp:TemplateField HeaderText="MyFieldName" >                    
        <ItemTemplate>
            <asp:CheckBox ID="CB_ID" runat="server"  OnCheckedChanged="CB_CheckedChanged"  AutoPostBack="true"  />
        </ItemTemplate>   
        <EditItemTemplate>
            <asp:CheckBox ID="CB_ID" runat="server"    OnCheckedChanged="CB_CheckedChanged"  AutoPostBack="true"  />
        </EditItemTemplate>                   
    </asp:TemplateField>
    ...
</GridView>

protected void CB_radio_obligatoire_CheckedChanged(object sender, EventArgs e) 
{
    CheckBox checkbox = sender as CheckBox;
}

所以 GridView 的所有行都代表 DB 项。 我的 CB_radio_obligatoire_CheckedChanged 方法需要调用一个 storedProcedure 并且需要数据库记录 ID。

如何在此 Gridview 中设置和访问此记录 ID?

我想最简单的方法是设置一个绑定到 ID 的隐藏字段。 如果是这样,这个隐藏域应该在哪里?作为 GridView 的隐藏列?在 asp:TemplateField 里面?在 ItemTemplate 里面?

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    如果您知道行索引,则可以访问GridViewRowDataKeyNames 值。

    protected void CB_ID_CheckedChanged(object sender, EventArgs e)
    {
        //cast the sender back to the checkbox
        CheckBox cb = sender as CheckBox;
    
        //cast the namingcontainer of the checkbox back to a gridviewrow
        GridViewRow row = cb.NamingContainer as GridViewRow;
    
        //as one-liner
        GridViewRow row = (GridViewRow)((CheckBox)sender).NamingContainer;
    
        //get the datakeyname value from the correct row in the gridview
        int id = (int)GV.DataKeys[row.RowIndex]["Id"];    
    }
    

    【讨论】:

    • 感谢一吨 VDWWD。您在 2 天内帮助了我两次 :) 非常感谢!
    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多