我不知道我是否采用了良好的方法
我有一个包含gridview
的视图页面和编辑页面
在gridview中,我添加了:
...
<Columns>
<asp:CommandField ShowEditButton="True" ShowDeleteButton="true"></asp:CommandField>
...
事件:
OnRowEditing="rgrContact_RowEditing"
在事件方法中,我尝试添加:
protected void rgrContact_RowEditing(object sender, GridViewEditEventArgs e)
{
var id = (int)rgrContact.DataKeys[e.RowIndex].Value;
Response.Redirect("..." + id);
但没有e.RowIndex
如何获取所选行的ID,以便将其传递给编辑页面?
我使用的是好事吗?
答案 0 :(得分:1)
试试这个:
NewEditIndex
返回您单击“编辑”
protected void rgrContact_RowEditing(object sender, GridViewEditEventArgs e)
{
var id = (int)rgrContact.DataKeys[e.NewEditIndex].Value;
Response.Redirect("MyEditPage.aspx?MyID=" + id);
编辑:
DataKeyNames="DataKey1,DataKey2"
你可以像这样使用
string DataKey1= rgrContact.DataKeys[e.NewEditIndex].Values[0].ToString();
string DataKey2= rgrContact.DataKeys[e.NewEditIndex].Values[1].ToString();
OR
rgrContact.DataKeys[e.NewEditIndex].Values["DataKey1"];
rgrContact.DataKeys[e.NewEditIndex].Values["DataKey2"];
正如其他人所说,不需要使用你说的话 另一种解决方案:
<ItemTemplate>
<asp:HyperLink ID="hyper" Text="this is link"
NavigateUrl= '<%# String.Format("{0}","MYpage.aspx?id=" + Eval("MY_ID_COL")) %>' runat="server" />
</ItemTemplate>