我下面一句代码 总是报错。对象无实例化

zhang86817 2010-09-09 04:26:21
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
GridViewRow row = GridView1.Rows[e.RowIndex];

string Area = ((TextBox)row.FindControl("TextBox1")).Text.ToString(); 这句报错
string family = ((TextBox)row.FindControl("TextBox2")).Text.ToString();
}
...全文
183 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bourbon1795 2010-09-09
  • 打赏
  • 举报
回复
你这报错明摆着就是控件没找到。
建议调试一下看看row对不对。
leiziaitudou 2010-09-09
  • 打赏
  • 举报
回复
string Area = ((TextBox)row.FindControl("TextBox1")).Text.ToString();
string Area = ((TextBox)row.cells[第几个单元格].FindControl("TextBox1")).Text.ToString();
试一试
sdo23 2010-09-09
  • 打赏
  • 举报
回复
GridViewRow row = GridView1.Rows[e.RowIndex];
应该是这句没有取到对象
taoistong 2010-09-09
  • 打赏
  • 举报
回复
e.Item.FindControl("TextBox1")
yulei243007703 2010-09-09
  • 打赏
  • 举报
回复
你有写GridView的编辑事件吗?没有的话添加下面的代码:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
}
让GridView处在编辑的状态,因为你的TextBox是在编辑模板中
macrottian 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhang86817 的回复:]
引用 5 楼 net_lover 的回复:
试试
((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox1")).Text


还是报那个错
[/Quote]

添加列项,定位到单元格
------------------------
.Cells[index].FindControl
孟子E章 2010-09-09
  • 打赏
  • 举报
回复
GridView 插入、删除、修改、分页的综合例子
参考完整的例子
http://dotnet.aspx.cc/file/Add-Delete-Update-Edit-Data-With-Paging-in-GridView.aspx

你的代码只有片段,无法更进一步查看
w3c5201314 2010-09-09
  • 打赏
  • 举报
回复
你调试看下你e.RowIndex的值呢?有么得?
还有GridView1.Rows.Count是多少
zhang86817 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 net_lover 的回复:]
试试
((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox1")).Text
[/Quote]

还是报那个错
细嗅蔷薇 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 net_lover 的回复:]
试试
((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox1")).Text
[/Quote]
试试这个
zhang86817 2010-09-09
  • 打赏
  • 举报
回复
索引超出范围。必须为非负值并小于集合大小。
参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index

源错误:


行 391: GridViewRow row = GridView1.Rows[e.RowIndex];
行 392:
行 393: string Area = ((TextBox)row.FindControl("TextBox1")).Text.ToString();
行 394: string family = ((TextBox)row.FindControl("TextBox2")).Text.ToString();
行 395: manage.StreetMappingUpdate(id, Area, family);

孟子E章 2010-09-09
  • 打赏
  • 举报
回复
试试
((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox1")).Text
w3c5201314 2010-09-09
  • 打赏
  • 举报
回复
报的什么错??
zhang86817 2010-09-09
  • 打赏
  • 举报
回复
我点击更新就报错~!
zhang86817 2010-09-09
  • 打赏
  • 举报
回复
上面这个是HTML 代码!
zhang86817 2010-09-09
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="sid" onrowcommand="GridView1_RowCommand"
onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:BoundField DataField="StreetName" HeaderText="街道名称" ReadOnly="True" />
<asp:TemplateField HeaderText="总面积">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Area") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Area") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="总户数">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("family") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("family") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="编辑" ShowEditButton="True" />
</Columns>
</asp:GridView>

62,271

社区成员

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

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

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

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