我有一个网格,其中我在每行显示一些记录。这是怎么回事:
现在,我的问题是,当我按下视图按钮时,我想从会话变量的第一列中获取ID,以便我可以在下一页显示相同的ID。
对于EditButton的ItemTemplate,我使用的是这段代码:
<ItemTemplate>
<asp:LinkButton ID="EditBtn" CssClass="btn green" CommandName="edit" ToolTip="Edit" Text="Edit" runat="server" />
</ItemTemplate>
答案 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();
}