GridView1.DataKeys[e.RowIndex].Value.ToString() 
只有GridViewDeleteEventArgs与GridViewUpdateEventArgs能这样得到当前主键值我不想用GridView自带的编辑功能,所以想把当前的主键值发送到另外一个网页,但GridViewEditEventArgs也无法用上面的方法得到主键值,所以新建了一个TemplateField,里面新建一个LinkButton控件用于发送当前主键值到新页

解决方案 »

  1.   

    第一种方式:在Dgv_RowDataBound中为LinkButton的CommandArgument赋值。则在ItemCommand中可以行到。第二种方式比较麻烦:寻找ItemCommand的sender的Parent,不知到在第几层,就找到了e.Row。你自己设断点调试一下(sender as WebControl).Parent或((sender as WebControl).Parent as WebControl).Parent是什么,会找到。不用说太明。这么说你会明白就好了。你要是还不明白就那个了。
      

  2.   

    这个方法很适合你http://dotnet.aspx.cc/file/Add-Delete-Update-Edit-Data-With-Paging-in-GridView.aspx自带的功能确实不好LinkButton b = sender as LinkButton;
    EditId = Convert.ToInt32(b.CommandArgument);or
    GridViewRow dvr = b.NamingContainer as GridViewRow;
    EditId = (int)GridView1.DataKeys[dvr.DataItemIndex].Value;
      

  3.   

    <script type="text/javascript">
        function test(obj) {
        var a=obj.value;
        alert(a);
        if (a!="--请选择--") {
        alert( obj.parentNode.parentNode.childNodes.item(a).innerHTML );
        }
       
        }
        </script>
      DropDownList drp = sender as DropDownList; // 触发事件的 DropDownList
            int a = Convert.ToInt32(drp.SelectedValue);
            GridViewRow row = drp.NamingContainer as GridViewRow; // GridView 当前行        
            // row.Style.Add(HtmlTextWriterStyle.BackgroundColor, drp.SelectedValue);
            int CurRow = row.RowIndex;
            string aa = GridView1.Rows[CurRow].Cells[a].Text;参考