===datagrid更新出错,高手帮忙!!!

Tomgus 2003-07-24 10:02:15
我的datagrid里有个模板列textbox.可能在更新他的时候有问题?
代码:
int getid =(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string get1 =((TextBox)e.Item.Cells[0].Controls[0]).Text;
string get2 =((TextBox)e.Item.Cells[1].Controls[0]).Text; //这列是模板
string get3 =((TextBox)e.Item.Cells[2].Controls[0]).Text;
string get4 =((TextBox)e.Item.Cells[3].Controls[0]).Text;
......
string SQL="update news set title='"+get1+"',content='"+get2+"',stime='"+get3+"',puber='"+get4+"',what='"+get5+"',How='"+get6+"',swhen='"+get7+"',swhere='"+get8+"',Demand='"+get9+"',Number='"+get10+"',Price='"+get11+"',about='"+get12+"' WHERE id="+getid;
hsjdata.moddata(SQL);
DataGrid1.EditItemIndex = -1;
dgbind();

报错:索引超出范围。必须为非负值并小于集合大小。参数名: index
"int getid =(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];"

但我在没有模板列时,用以上的语句是成功的,这是为什么???
...全文
17 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinye 2003-07-24
  • 打赏
  • 举报
回复
重新指定DataGrid1.DataKeys
有时候会没有。
老赵说高考 2003-07-24
  • 打赏
  • 举报
回复
例:EditText1 = (TextBox)e.Item.FindControl("控件ID");
老赵说高考 2003-07-24
  • 打赏
  • 举报
回复
用FindControl
OutcastXP 2003-07-24
  • 打赏
  • 举报
回复
你把aspx改成这样看一下
<asp:TemplateColumn SortExpression="content" HeaderText="content">
<HeaderTemplate>
content
</HeaderTemplate>
<ItemTemplate>
<asp:Label id="label1" runat="server" Width="36px" Text='<%# Container.DataItem("content") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Height="67px" Width="229px" Text='<%# Container.DataItem("content") %>' TextMode="MultiLine">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>

cs里面改成:
string get2 =((TextBox)e.Item.Cells[1].Controls[1]).Text;
Tomgus 2003-07-24
  • 打赏
  • 举报
回复
<ItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Height="67px" Width="229px" Text='<%# DataBinder.Eval(Container.DataItem, "content") %>' TextMode="MultiLine">
</asp:TextBox>
</ItemTemplate>
xu0923 2003-07-24
  • 打赏
  • 举报
回复
将摸版列换成(TextBox)e.Item.FindControl("摸版列中控件ID");试试看
OutcastXP 2003-07-24
  • 打赏
  • 举报
回复
你能把你的模板列那段aspx文件给我看吗?
我估计你的e.Item.Cells[1].Controls[0] 这个TextBox不是index为0的控件

62,046

社区成员

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

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

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

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