关于datagridr 的问题?

wsqsoft 2003-11-04 05:06:35
为什么用以下方法获的值总是编辑以前的值?

string sName = ((TextBox)e.Item.Cells[1].Controls[0]).Text;


函数如下:

protected void MyDataGrid_Update(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string sID = DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();
string sName = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
if(sName=="")
{
}
else
{
Database database = new Database();
string sql="update tblProductDemand set Name='"+ sName +"' Where ID=" + sID;
database.RunMySQL(sql);
DataGrid1.EditItemIndex = -1;
BindGrid();
}



}
...全文
30 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
srj911 2003-11-04
  • 打赏
  • 举报
回复
去掉if(!IsPostBack)
{
}
试试
wsqsoft 2003-11-04
  • 打赏
  • 举报
回复
多谢qiuji(忆秋季)
问题解决了!
asam2183 2003-11-04
  • 打赏
  • 举报
回复
string sID = MyDataGrid.DataKeys[(int)e.Item.ItemIndex].ToString();
wsqsoft 2003-11-04
  • 打赏
  • 举报
回复
不是的,是
string sName = ((TextBox)e.Item.Cells[1].Controls[0]).Text;

老是数据刚显示的值,输入什么都不行,查询成功了,但是和编辑以前一样!
qiuji 2003-11-04
  • 打赏
  • 举报
回复
另外,这样写更新的代码:
string sql="update tblProductDemand set Name='"+ sName +"'Where ID=" + DataGrid1.DataKeys[(int)e.Item.ItemIndex];

其中,在BindGrid()中的DataGrid1.DataBind();之前添加:
DataGrid1.DataKeyField="ID";
qiuji 2003-11-04
  • 打赏
  • 举报
回复
是不是你更新后显示的还是原来的值?
修改你的Page_Load代码:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
BindGrid();
}
}
KK4 2003-11-04
  • 打赏
  • 举报
回复
string sID = DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString().trim;

string sql="update tblProductDemand set Name='"+ sName +"' Where ID='"& sID & "'";

62,046

社区成员

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

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

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

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