首先绑定DataKeyNames GridView.DataKeyNames = new string[] { "字段名称" };
然后才能取得行主键值
首先绑定DataKeyNames GridView.DataKeyNames = new string[] { "字段名称" }; 取值 string aaa= GridView.DataKeys[e.Row.RowIndex].Value.ToString(); 1、在绑定时设置主键: //设置主键; GridView1.DataKeyNames = new string[] { "id" }; GridView1.DataBind(); 2、获取键值: GridView1.DataKeys[e.RowIndex].Value.ToString(); 按钮事件里添加 string str_dk= GridView1.DataKeys[e.Row.RowIndex].Value.ToString(); 如果GridView控件的DataKeyNames属性设置了表的两个字段(SubjectID,Mode),那么在为GridView绑定数据时对库表的每个记录的指定字段值要作出判断。后台代码中的e.Row.RowIndex即表示GridView的当前行(对应于库表的当前记录);而 View1.DataKeys[e.Row.RowIndex].Values["Mode"].ToString()则获取当前行指定字段(Mode) 的值。若前台代码只写:DataKeyNames="SubjectID'(即DataKeyNames属性只填入一个字段名),则后台只需写成: View1.DataKeys[e.Row.RowIndex].Value.ToString()) 即可。 同样的,要动态获取当前行另一个字段的值可以这样写: View.DataKeys[e.Row.RowIndex].Values["SubjectID"].ToString())。
http://topic.csdn.net/u/20071018/22/d63a0632-bfdf-44d2-89f4-7a39b3f4c97f.html
朋友以上说的代码应该要写在GridView的什么事件里吧?因为 e.Row.RowIndex 。
这个问题先不纠结了,因为你说的不是我期望的那种效果。朋友能否知道 在GridView中
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
/*此处省略绑定的模板列*/
<asp:HyperLinkField Text="查看" DataNavigateUrlFormatString="Demo.aspx?HSubjectID={0}&HPID={1}&HSName={2}" DataNavigateUrlFields="HallSubjectID,HPostId,HSubName">
</asp:HyperLinkField>
</Columns>
</asp:GridView>
<asp:HyperLinkField 现在传递值是通过Demo.aspx?HSubjectID={0}&HPID={1}&HSName={2}" 这种方式来传递的,有没有其他好的传值方法呢?因为这个方法,如果值长度很大就会有问题。
@Technology:
<asp:HyperLinkField Text="查看" DataNavigateUrlFormatString="Demo.aspx?HSubjectID={0}&HPID={1}&HSName={2}" DataNavigateUrlFields="HallSubjectID,HPostId,HSubName">
</asp:HyperLinkField>这个点击事件就可以了。
grvStoreHouse.DataKeyNames = new string[] { "F_GUID", "F_StoreHouseName", "F_Phone", "F_PersonGUID", "用户姓名" }; grvStoreHouse.DataSource = lst; grvStoreHouse.DataBind(); protected void ImageButton2_Click(object sender, ImageClickEventArgs e) { ViewState["Operate"] = "Updates"; DdlPerson(); int index = ((GridViewRow)((ImageButton)sender).NamingContainer).DataItemIndex; DataKey key = this.grvStoreHouse.DataKeys[index]; ViewState["guid"] = key["F_GUID"].ToString(); txtStoreHouseName.Text = key["F_StoreHouseName"].ToString(); txtPhone.Text = key["F_Phone"].ToString(); }
換成 button,在事件中傳遞數據。可以用viewstate ,session等。