GridView 如何转递id值。。

rightnet1 2012-06-13 12:49:32
<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的、 不知怎么传和接收。
...全文
139 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyue10 2012-06-14
  • 打赏
  • 举报
回复
1楼的方法我认为是最直接的,在DataKeyNames这个属性中的把Id赋值上去就行了
页面

HTML code


DataKeyNames="ID"//Gridview有这么个属性,你把ID值放到这里



后台获取

C# code


//假那么你的删除里面就可以这样获取到对应的ID值
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
[/Quote]
Macy0606 2012-06-14
  • 打赏
  • 举报
回复
<asp:HyperLinkField DataNavigateUrlFormatString="Detailview.aspx?username={0}"
Text="查看" DataNavigateUrlFields="username" DataTextField="username" />

我也遇到一样的问题,我现在可以实现了,跟你分享下

你得下一页获取id 直接 string a = Request["username"];就可以
Macy0606 2012-06-14
  • 打赏
  • 举报
回复
你要先在gridview里面添加超链接,然后连接的id取值为{?},然后cs中获取这个id
夜色镇歌 2012-06-13
  • 打赏
  • 举报
回复



还没这么写过。。。放一个hidden
findcontrol 试试啊
jdc71264 2012-06-13
  • 打赏
  • 举报
回复
有办法

页面

DataKeyNames="ID"//Gridview有这么个属性,你把ID值放到这里


后台获取

//假那么你的删除里面就可以这样获取到对应的ID值
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
baixue11270526 2012-06-13
  • 打赏
  • 举报
回复
绑定数据是用GridView1.DataKeyNames = new string[] { "id" };
删除时 string id=GridView1.DataKeys[e.RowIndex].Value.ToString();
a793917709 2012-06-13
  • 打赏
  • 举报
回复
<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列
xiaowen_ly 2012-06-13
  • 打赏
  • 举报
回复
<Asp:linkbutton text="删除" CommandName="del" CommandArgument="<%Eval('id')%>"/>
  • 打赏
  • 举报
回复
设置主键啊
GridView1.DataKeyNames = new string[] { "id" };
看看看灰机 2012-06-13
  • 打赏
  • 举报
回复
commandargument=<%#eval("id")%>

string id=e.commandargument.tostring();
牛哥_ 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

使用隐藏控件,通过Eval绑定ID都可以,
commandfield 删除的话,觉得还是通过Eval绑定id来获取id删除比较方便
[/Quote]

我觉得绑定数据好点
烟波钓 2012-06-13
  • 打赏
  • 举报
回复
通过这个方法的参数
protected void Article_GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

string id = ?? // EmailListDAL.UpdateEmailStatus();
msgBox.MsgBoxEnd(this.Page, "废除成功,状态已经改为废除!");

}
看看这个参数e中都有啥东西 好好跟跟这个参数
  • 打赏
  • 举报
回复
使用隐藏控件,通过Eval绑定ID都可以,
commandfield 删除的话,觉得还是通过Eval绑定id来获取id删除比较方便
xmhxjjq 2012-06-13
  • 打赏
  • 举报
回复
2楼的可以。 在A标签的地方绑定一下ID。 然后可以再后面用{0}来获取ID值。
jdc71264 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
还没这么写过。。。放一个hidden
findcontrol 试试啊
[/Quote]
你要放多少个hidden啊???
一个页面30行,那是不是就得30个hidden啊亲~~~

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧