如何从gridview编辑事件重定向到另一个页面

时间:2014-11-07 18:38:38

标签: c# asp.net gridview

我不知道我是否采用了良好的方法 我有一个包含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,以便将其传递给编辑页面?
我使用的是好事吗?

1 个答案:

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