GridView获取每一行第一列的值

半瓶神仙水 2011-11-09 10:55:07
protected void GridViewEmail_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string content = string.Empty;
string a = GridViewEmail.Rows[e.RowIndex].Cells[0].Text.ToString();
if (GridViewEmail.Rows.Count > 0)
{
for (int i = 0; i < GridViewEmail.Rows.Count; i++)
{
//TextBox tx = GridViewEmail.Rows[i].FindControl("txtemail") as TextBox;
//if (tx != null)
//{
// content += tx.Text + ',';
//}

string b = GridViewEmail.Rows[1].Cells[0].Text.ToString();
content += GridViewEmail.Rows[i].Cells[0].Text.ToString()+',';
}
content = content.Substring(0, content.IndexOf(","));
}
int count = UpdateInfo.DeleteEmail(content,userobj.UserId);
if (count == 1)
{
Bind();
}
}
需要实现的功能是:数据库表中有一个邮箱字段,邮箱可以多个以逗号隔开。在界面上用列表显示,删除后从新绑定。现在需要删除一个邮箱,其他邮箱不变
...全文
587 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
如果我想去lable里的值怎么办?
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
Updateing里面只能取TextBox
不能取LABEL
因为lable没有在编辑模板里面!!!
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
在 Updateing里获取<asp:Label ID="Label2" runat="server" Text='<%#Eval("Email")%>'></asp:Label>这个值

string OldEmail = ((Label)(GridViewEmail.Rows[e.RowIndex].FindControl("Label2"))).Text.ToString().Trim();直接catch了
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
string str=((TextBox)this.GridViewEmail.Rows[e.RowIndex].FindControl("txtemail")).Text;
这样就得到了!!!!
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
this.Label1.Text = ((TextBox)this.GridViewEmail.Rows[e.RowIndex].FindControl("txtemail")).Text;

说了在Updateing里面这么写就对了!!
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 long332949572 的回复:]

RowUpdating如果你是要在这个事件里面获取
那么
使用TextBox txtName = (TextBox)gvList.Rows[e.RowIndex].Cells[0].Controls[0];
创建一个控件
[/Quote]
结果是:
无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。
  • 打赏
  • 举报
回复
e.Row.Cells[0].Text
LONG332949572 2011-11-09
  • 打赏
  • 举报
回复
RowUpdating如果你是要在这个事件里面获取
那么
使用TextBox txtName = (TextBox)gvList.Rows[e.RowIndex].Cells[0].Controls[0];
创建一个控件
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
this.Label1.Text = ((TextBox)this.GridViewEmail.Rows[e.RowIndex].FindControl("txtemail")).Text;
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
可以因为你只编辑了一行 而我刚刚的代码是查找所有的 所以会报错!!
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
protected void GridViewEmail_RowUpdating(object sender, GridViewUpdateEventArgs e)
{这个事件下不行么
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
编辑状态下textbox才显示出来 才能获取的到
没再编辑状态下只能获取Lable的值
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
那是因为你没有在编辑状态下!!!
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
话说还是不对,未将对象引用至实例
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
额,谢谢 我试试
1800包吃包住 2011-11-09
  • 打赏
  • 举报
回复
好吧你可以
string str = "";
foreach (GridViewRow row in this.GridViewEmail.Rows)
{
str += ((TextBox)row.FindControl("txtemail")).Text + ",";
}
this.Label1.Text = str;

这样你就得到了!!
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
说用正则的大侠麻烦说详细点 不是很明白
半瓶神仙水 2011-11-09
  • 打赏
  • 举报
回复
就是我在要获取编辑之后的 <EditItemTemplate>
<asp:TextBox ID="txtemail" runat="server" Text='<%#Eval("Email")%>'></asp:TextBox>
</EditItemTemplate>
这个也得不到
fsss007 2011-11-09
  • 打赏
  • 举报
回复
用数组操作应该可以。
xiaozhang1528008 2011-11-09
  • 打赏
  • 举报
回复
用正则表达式,看可以不可以
加载更多回复(10)

62,046

社区成员

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

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

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

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