girdview中的gridview1_RowUpdating 更新不成功也不报错搞了半天也没成效 我是新手 请大家帮忙找原因

shenhai11 2008-11-22 12:07:14
如果编程读取编辑模板内3个Textbox值 则读取不到更新的值 读取的是原始值这样导致更新不了新值!!如:
string chengCi = ((TextBox)gridview1.Rows[e.RowIndex].FindControl ("chengciTextBox1")).Text;
string xiangMuHao = ((TextBox)gridview1.Rows[e.RowIndex].FindControl("xiangmuhaoTextBox1")).Text;
string xiangMuName = ((TextBox)gridview1.Rows[e.RowIndex].FindControl("xiangmunameTextBox1")).Text;
bool success = CatalogAccess.UpdateMuLu(xiangmuID, chengCi, xiangMuHao, xiangMuName);

更新函数 存储过程应该没有问题 因为我将RowUpdating事情中3个要更新的字符串变量全部换成字符串常量调试后一起正常!如:
string chengCi ="1" ;
string xiangMuHao ="1";
string xiangMuName ="1";
bool success = CatalogAccess.UpdateMuLu(xiangmuID, chengCi, xiangMuHao, xiangMuName);

详细代码如下:
<asp:GridView
ID="gridview1"
DataKeyNames="XiangMuID"
AutoGenerateColumns="false"
runat="server"
OnRowUpdating="gridview1_RowUpdating"
OnRowCancelingEdit="gridview1_RowCancelingEdit"
OnRowEditing="gridview1_RowEditing">
<Columns>
<asp:BoundField HeaderText="序号" DataField="XiangMuID" ReadOnly="true"/>
<asp:TemplateField HeaderText="层次">
<ItemTemplate>
<asp:Label
ID="chengciLabel"
Text='<%# Bind("ChengCi") %>'
runat="server">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="chengciTextBox1"
TextMode="SingleLine"
Text='<%# Bind("ChengCi") %>'
runat="server"/>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="项目号">
<ItemTemplate>
<asp:Label
ID="xiangmuhaoLabel"
Text='<%# Bind("XiangMuHao") %>'
runat="server">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="xiangmuhaoTextBox1"
Text='<%# Bind("XiangMuHao") %>'
TextMode="SingleLine"
runat="server">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
...
<asp:CommandField ShowEditButton="true" />
</Columns>
</asp:GridView>

    protected void gridview1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
try
{
string xiangmuID = gridview1.DataKeys[e.RowIndex].Value.ToString();
string chengCi = ((TextBox)gridview1.Rows[e.RowIndex].FindControl ("chengciTextBox1")).Text;
string xiangMuHao = ((TextBox)gridview1.Rows[e.RowIndex].FindControl("xiangmuhaoTextBox1")).Text;
string xiangMuName = ((TextBox)gridview1.Rows[e.RowIndex].FindControl("xiangmunameTextBox1")).Text;
bool success = CatalogAccess.UpdateMuLu(xiangmuID, chengCi, xiangMuHao, xiangMuName);
gridview1.EditIndex = -1;
statusLabel.Text = success ? "更新成功" : "更新失败";
BindGird();
}
catch (Exception ex)
{
throw ex;
}
}


...全文
160 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdjlc 2008-11-22
  • 打赏
  • 举报
回复
XiangMuID在数据库表中是不是int类型?是的话
string xiangmuID = gridview1.DataKeys[e.RowIndex].Value.ToString();
改为int xiangmuID = int.Parse(gridview1.DataKeys[e.RowIndex].Value.ToString());
蝶恋花雨 2008-11-22
  • 打赏
  • 举报
回复
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx GridView选中,编辑,取消,删除
Zeteyu 2008-11-22
  • 打赏
  • 举报
回复
可能是isPostBack没判断的问题
mengxj85 2008-11-22
  • 打赏
  • 举报
回复
单步调试看看吧,这样才好发现问题,监视可能有问题的变量看看
wjxluck 2008-11-22
  • 打赏
  • 举报
回复
在模板的textbox要双向的数据绑定 也就是Bind("字段")

62,269

社区成员

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

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

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

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