Gridview选择事件!高分!!! GridView在选择是如何传递参数,数据库有唯一值ID,怎样通过GridView的选择事件传递这个参数,望高手讲解! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DataKeyNames="[字段名],[字段名]...." 先在控件的属性列中设置datafilekey, <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="productid" DataSourceID="SqlDataSource1" OnSelectedIndexChanging="GridView1_SelectedIndexChanging"> <Columns> <asp:BoundField DataField="productid" HeaderText="productid" InsertVisible="False" ReadOnly="True" SortExpression="productid" /> <asp:BoundField DataField="productname" HeaderText="productname" SortExpression="productname" /> <asp:TemplateField> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("productname") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:LinkButton ID="lbtnSelect" runat="server" CausesValidation="False" CommandName="Select" Text="选择"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns></asp:GridView><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True" ProviderName="System.Data.SqlClient" SelectCommand="select productid, productname from products"></asp:SqlDataSource>protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e){ //这里通过DataKeys的集合得到主键,不过前提是给GridView设置过DataKeyNames string productid = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString(); Response.Write(productid);} protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e){ //这里通过DataKeys的集合得到主键,不过前提是给GridView设置过DataKeyNames string productid = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString(); Response.Write(productid);} GridView1.DataKeys[e.NewSelectedIndex].Value.ToString(); 直接在GV里面加一个列,绑定ID,然后设置为隐藏,每次读取这个隐藏的ID不就可以了. 貌视楼主不晓得GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();注意:在<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="productid" DataSourceID="SqlDataSource1" OnSelectedIndexChanging="GridView1_SelectedIndexChanging"/>一定要加上红色字体部分,用来绑定数据 两种方式.一种是使用GridView控件自带的"选择"功能,代码如下protected void GridView1_SelectedIndexChanged(object sender, EventArgs e){ Response.Write(GridView1.SelectedDataKey.Value);}另一种方式,是自定义模版列,使用Button控件,代码如下protected void Button1_Click(object sender, EventArgs e) { int index = ((GridViewRow)((Button)sender).Parent.Parent).RowIndex; //通过下面的方式找到当前行主键 string strID = GridView1.Rows[index].Cells[1].Text; Response.Write(strID); } protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { TextBox1.Text = GridView1.Rows[e.NewSelectedIndex].Cells[1].Text.ToString(); } 请教两次页面间数据传递的问题 问各位高手个获取表单请求的问题 asp.net 中 keybd_event 怎么验证用户非法登陆??(在线急) vs2005发布后无法运行 关于App_Browsers作用域的问题 ^_^ Web方式管理ServU-FTP 如何创建会话(Session)? 紧急求助 pdf文件在线浏览 测试性能工具??? a.href="javascript:function()" 传递连个参数?
<Columns>
<asp:BoundField DataField="productid" HeaderText="productid" InsertVisible="False"
ReadOnly="True" SortExpression="productid" />
<asp:BoundField DataField="productname" HeaderText="productname" SortExpression="productname" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("productname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="lbtnSelect" runat="server" CausesValidation="False" CommandName="Select"
Text="选择"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True" ProviderName="System.Data.SqlClient" SelectCommand="select productid, productname from products"></asp:SqlDataSource>protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
//这里通过DataKeys的集合得到主键,不过前提是给GridView设置过DataKeyNames
string productid = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
Response.Write(productid);
}
{
//这里通过DataKeys的集合得到主键,不过前提是给GridView设置过DataKeyNames
string productid = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
Response.Write(productid);
}
注意:在<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="productid" DataSourceID="SqlDataSource1" OnSelectedIndexChanging="GridView1_SelectedIndexChanging"/>一定要加上红色字体部分,用来绑定数据
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write(GridView1.SelectedDataKey.Value);
}
另一种方式,是自定义模版列,使用Button控件,代码如下
protected void Button1_Click(object sender, EventArgs e)
{
int index = ((GridViewRow)((Button)sender).Parent.Parent).RowIndex;
//通过下面的方式找到当前行主键
string strID = GridView1.Rows[index].Cells[1].Text;
Response.Write(strID);
}
{
TextBox1.Text = GridView1.Rows[e.NewSelectedIndex].Cells[1].Text.ToString();
}