为什么更新DataGrid时,取不到TextBox中修改后的值,取到的只是修改前的数据?

wzphp 2004-11-01 02:13:42
以下是我在DataGrid中点击“更新”的处理代码,取不到TextBox中修改后的值。怎样才能取到的修改后的数据啊?(比如我在点击“编辑”之后进入编辑状态,在TextBox中将原来的111改成222,然后点击“更新”,发现数据并没被修改,后来用下面的办法,把值取出来一看竟然还是修改前的数据)

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string Name = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
Response.Write(Name);
。。。。。。
}

有谁知道怎么回事吗?怎么解决阿?!
...全文
227 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzphp 2004-11-01
  • 打赏
  • 举报
回复
是不是这样啊?
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (!Page.IsPostBack)
{
string Name = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
Response.Write(Name);
。。。。。。
}
}
这样的话,按“更新”没反应阿,现在不是绑定的问题,是Response.Write(Name)出来的是TextBox修改之前的数据。怎么办涅?
oyff 2004-11-01
  • 打赏
  • 举报
回复
page_load
if not ispostback then
......
end sub

你的按钮按下以后
程序是先执行page_load,后执行你的按钮代码
所以page_load里要加上if not ispostback then
liusp525 2004-11-01
  • 打赏
  • 举报
回复
就是这个if (!Page.IsPostBack)的原因,我对他印象很深

我也是,调了好久呀!
PCXGG 2004-11-01
  • 打赏
  • 举报
回复
就是这个if (!Page.IsPostBack)的原因,我对他印象很深
tianjue0921 2004-11-01
  • 打赏
  • 举报
回复
就是这个if (!Page.IsPostBack)的原因,我对他印象很深
forideal 2004-11-01
  • 打赏
  • 举报
回复
是不是用了DataAdapter,更新数据后没有推进到数据库中?
chenyu112 2004-11-01
  • 打赏
  • 举报
回复
同意楼上,你看看Page_Load中数据绑定在哪儿?
把数据绑定拿到if (!Page.ispostback){//数据绑定}试试
amendajing 2004-11-01
  • 打赏
  • 举报
回复
有可能如nmlvjun(网事如风)所说,你调试看看!
Oldman 2004-11-01
  • 打赏
  • 举报
回复
更新后,重新绑定就行了
Coder2k 2004-11-01
  • 打赏
  • 举报
回复
帮你UP
nmlvjun 2004-11-01
  • 打赏
  • 举报
回复
if (!Page.IsPostBack)的原因,更新后又回到了原始状态


cansum396 2004-11-01
  • 打赏
  • 举报
回复
page_load
if not ispostback then
datagrid1.datasource=...
endif
end sub
wzphp 2004-11-01
  • 打赏
  • 举报
回复
好了,谢谢各位。结贴给分!
rainbowjjx 2004-11-01
  • 打赏
  • 举报
回复
1.如果你在Page_Load中有對數據綁定,則一定加if(!this.IsPostBack)
2.在System.Web.UI.WebControls.DataGridCommandEventArgs e)
中用e.Item.findcontrol("ID")取控件
3.更新後需要重新綁定.
popcode 2004-11-01
  • 打赏
  • 举报
回复
try
((TextBox)e.Item.FindControl("ControlId")).Text;
Study_Now 2004-11-01
  • 打赏
  • 举报
回复
string Name = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
Response.Write(Name);

Name当然是原值,因为点击更新后,按程序的执行顺序,应该是先执行Response.Write(Name);后执行数据库更新。因此你把Response.Write(Name);放到数据库更新语句后面试试!!!如果还是原值,那么再重新读数据库重新邦定就行了!!!
wzphp 2004-11-01
  • 打赏
  • 举报
回复
To oyff(欧阳峰峰):
我在page_load中加了if (!Page.IsPostBack),结果一按“编辑”页面就出什么都没有了。

62,243

社区成员

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

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

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

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