GridView 如何转递id值。。
<asp:GridView ID="Article_GridView1" runat="server"OnRowDeleting="Article_GridView1_RowDeleting"
AutoGenerateColumns="False" OnRowDataBound="Article_GridView_RowDataBound" AllowPaging="True" PageSize="15" AllowSorting="True" Width="100%" >
<Columns>
<asp:BoundField DataField="Email" HeaderText="邮箱" />
<asp:BoundField DataField="Ename" HeaderText="姓名" />
<asp:BoundField DataField="Ecompany" HeaderText="公司" />
<asp:BoundField DataField="Econtact" HeaderText="联系电话" />
<asp:BoundField DataField="Status" HeaderText="状态" />
<asp:BoundField DataField="AddTimes" HeaderText="订阅时间" />
<asp:commandfield HeaderText="操作" ShowDeleteButton="True" DeleteText="【废除】"> </asp:commandfield> <asp:commandfield HeaderText="操作" ShowSelectButton="True" SelectText="【设为有效】"> </asp:commandfield>
</Columns>
</asp:GridView>
后台代码
protected void Article_GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = ?? // EmailListDAL.UpdateEmailStatus();
msgBox.MsgBoxEnd(this.Page, "废除成功,状态已经改为废除!");
}
ID也是表里的一个字段。我想在删除时换得该行的ID,有啥办法吗??
="【设为有效】"> 这里也是需要转替id的、 不知怎么传和接收。 --------------------编程问答-------------------- 有办法
页面
DataKeyNames="ID"//Gridview有这么个属性,你把ID值放到这里
后台获取
--------------------编程问答--------------------
//假那么你的删除里面就可以这样获取到对应的ID值
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
还没这么写过。。。放一个hidden
findcontrol 试试啊 --------------------编程问答--------------------
你要放多少个hidden啊???
一个页面30行,那是不是就得30个hidden啊亲~~~ --------------------编程问答-------------------- 2楼的可以。 在A标签的地方绑定一下ID。 然后可以再后面用{0}来获取ID值。 --------------------编程问答-------------------- 使用隐藏控件,通过Eval绑定ID都可以,
commandfield 删除的话,觉得还是通过Eval绑定id来获取id删除比较方便 --------------------编程问答-------------------- 通过这个方法的参数
protected void Article_GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = ?? // EmailListDAL.UpdateEmailStatus();
msgBox.MsgBoxEnd(this.Page, "废除成功,状态已经改为废除!");
}
看看这个参数e中都有啥东西 好好跟跟这个参数 --------------------编程问答--------------------
我觉得绑定数据好点 --------------------编程问答-------------------- commandargument=<%#eval("id")%>
string id=e.commandargument.tostring(); --------------------编程问答-------------------- 设置主键啊
GridView1.DataKeyNames = new string[] { "id" }; --------------------编程问答-------------------- <Asp:linkbutton text="删除" CommandName="del" CommandArgument="<%Eval('id')%>"/> --------------------编程问答-------------------- <asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete" OnClientClick="javascript:return confirm('确认删除么?');" >删除</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
gridview的数据源里面加一个DELETE 语句DELETE FROM Student WHERE (student_ID = @student_ID)
注释:()里面的是你的表的 ID列=@ID列 --------------------编程问答-------------------- 绑定数据是用GridView1.DataKeyNames = new string[] { "id" };
删除时 string id=GridView1.DataKeys[e.RowIndex].Value.ToString(); --------------------编程问答-------------------- 你要先在gridview里面添加超链接,然后连接的id取值为{?},然后cs中获取这个id --------------------编程问答-------------------- <asp:HyperLinkField DataNavigateUrlFormatString="Detailview.aspx?username={0}"
Text="查看" DataNavigateUrlFields="username" DataTextField="username" />
我也遇到一样的问题,我现在可以实现了,跟你分享下
你得下一页获取id 直接 string a = Request["username"];就可以 --------------------编程问答-------------------- 1楼的方法我认为是最直接的,在DataKeyNames这个属性中的把Id赋值上去就行了
页面
HTML code
DataKeyNames="ID"//Gridview有这么个属性,你把ID值放到这里
后台获取
C# code
//假那么你的删除里面就可以这样获取到对应的ID值
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
[/Quote]
补充:.NET技术 , ASP.NET