从GridView的第一列获取id

时间:2011-01-12 08:12:44

标签: asp.net gridview

我有一个网格,其中我在每行显示一些记录。这是怎么回事: alt text

现在,我的问题是,当我按下视图按钮时,我想从会话变量的第一列中获取ID,以便我可以在下一页显示相同的ID。

对于EditButton的ItemTemplate,我使用的是这段代码:

<ItemTemplate>
   <asp:LinkButton ID="EditBtn" CssClass="btn green" CommandName="edit" ToolTip="Edit" Text="Edit" runat="server" />
</ItemTemplate>

2 个答案:

答案 0 :(得分:3)

您可以尝试将其作为命令参数传递:

<ItemTemplate>
    <asp:LinkButton 
        ID="EditBtn" 
        CssClass="btn green" 
        CommandName="edit" 
        CommandArgument='<%# Eval("FirstColumnId") %>'
        OnCommand="EditCommand"
        ToolTip="Edit" 
        Text="Edit" 
        runat="server" />
</ItemTemplate>

并在后面的代码中:

protected void EditCommand(object sender, GridViewCommandEventArgs e)
{
    var id = e.CommandArgument;
    // TODO: do something with the id
}

答案 1 :(得分:1)

试试这个。您的aspx不需要进行任何更改

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
    Session["UserID"] = ((Label)GridView1.Rows[e.NewEditIndex].FindControl("lb1")).Text.Trim();
}

其他方法(使用DataKeyNames - 首选)

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
    Session["UserID"] = GridView1.DataKeys[e.NewEditIndex].Value.ToString();
}