问题描述
<asp:GridViewID="Article_GridView1"runat="server"OnRowDeleting="Article_GridView1_RowDeleting"AutoGenerateColumns="False"OnRowDataBound="Article_GridView_RowDataBound"AllowPaging="True"PageSize="15"AllowSorting="True"Width="100%"><Columns><asp:BoundFieldDataField="Email"HeaderText="邮箱"/><asp:BoundFieldDataField="Ename"HeaderText="姓名"/><asp:BoundFieldDataField="Ecompany"HeaderText="公司"/><asp:BoundFieldDataField="Econtact"HeaderText="联系电话"/><asp:BoundFieldDataField="Status"HeaderText="状态"/><asp:BoundFieldDataField="AddTimes"HeaderText="订阅时间"/><asp:commandfieldHeaderText="操作"ShowDeleteButton="True"DeleteText="【废除】"></asp:commandfield><asp:commandfieldHeaderText="操作"ShowSelectButton="True"SelectText="【设为有效】"></asp:commandfield></Columns></asp:GridView>后台代码protectedvoidArticle_GridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){stringid=??//EmailListDAL.UpdateEmailStatus();msgBox.MsgBoxEnd(this.Page,"废除成功,状态已经改为废除!");}ID也是表里的一个字段。我想在删除时换得该行的ID,有啥办法吗??="【设为有效】">这里也是需要转替id的、不知怎么传和接收。
解决方案
解决方案二:
有办法页面DataKeyNames="ID"//Gridview有这么个属性,你把ID值放到这里
后台获取//假那么你的删除里面就可以这样获取到对应的ID值intid=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
解决方案三:
还没这么写过。。。放一个hiddenfindcontrol试试啊
解决方案四:
引用2楼的回复:
还没这么写过。。。放一个hiddenfindcontrol试试啊
你要放多少个hidden啊???一个页面30行,那是不是就得30个hidden啊亲~~~
解决方案五:
2楼的可以。在A标签的地方绑定一下ID。然后可以再后面用{0}来获取ID值。
解决方案六:
使用隐藏控件,通过Eval绑定ID都可以,commandfield删除的话,觉得还是通过Eval绑定id来获取id删除比较方便
解决方案七:
通过这个方法的参数protectedvoidArticle_GridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){stringid=??//EmailListDAL.UpdateEmailStatus();msgBox.MsgBoxEnd(this.Page,"废除成功,状态已经改为废除!");}看看这个参数e中都有啥东西好好跟跟这个参数
解决方案八:
引用5楼的回复:
使用隐藏控件,通过Eval绑定ID都可以,commandfield删除的话,觉得还是通过Eval绑定id来获取id删除比较方便
我觉得绑定数据好点
解决方案九:
commandargument=<%#eval("id")%>stringid=e.commandargument.tostring();
解决方案十:
设置主键啊GridView1.DataKeyNames=newstring[]{"id"};
解决方案十一:
<Asp:linkbuttontext="删除"CommandName="del"CommandArgument="<%Eval('id')%>"/>
解决方案十二:
<asp:TemplateField><ItemTemplate><asp:LinkButtonID="LinkButton1"runat="server"CommandName="delete"OnClientClick="javascript:returnconfirm('确认删除么?');">删除</asp:LinkButton></ItemTemplate></asp:TemplateField>gridview的数据源里面加一个DELETE语句DELETEFROMStudentWHERE(student_ID=@student_ID)注释:()里面的是你的表的ID列=@ID列
解决方案十三:
绑定数据是用GridView1.DataKeyNames=newstring[]{"id"};删除时stringid=GridView1.DataKeys[e.RowIndex].Value.ToString();
解决方案十四:
你要先在gridview里面添加超链接,然后连接的id取值为{?},然后cs中获取这个id
解决方案十五:
<asp:HyperLinkFieldDataNavigateUrlFormatString="Detailview.aspx?username={0}"Text="查看"DataNavigateUrlFields="username"DataTextField="username"/>我也遇到一样的问题,我现在可以实现了,跟你分享下你得下一页获取id直接stringa=Request["username"];就可以
解决方案:
1楼的方法我认为是最直接的,在DataKeyNames这个属性中的把Id赋值上去就行了页面HTMLcodeDataKeyNames="ID"//Gridview有这么个属性,你把ID值放到这里后台获取C#code//假那么你的删除里面就可以这样获取到对应的ID值intid=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);[/Quote]