再问: GridView的rowediting里为什么findcontrol不到控件???求助高人

netspies 2008-03-28 04:26:50
先说说我的情况

1. GridView是AutoGenerateColumns="True",即列是自动生成的,但是由于各种需要,还添加了自己摸板列,如:
<asp:TemplateField HeaderText="详细情况">
<ItemTemplate>
<a href='bdgl03.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"ID") %>'>详细情况</a>
</ItemTemplate>
<ItemStyle Width="30px" BorderWidth="1px" HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>

2.生成表格的Sql语句是CS文件中给出的,即在 if (!IsPostBack)中进行绑定数据.

3.该控件要来更新数据,因此加入了如下代码:

<asp:TemplateField HeaderText="编辑" ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
Text="更新"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemStyle BorderWidth="1px" HorizontalAlign="Center" VerticalAlign="Middle" Width="120px" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
Text="编辑"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

我的问题是:
当我点击"编辑",修改数据后,再点"更新",此时执行GridView_RowUpdating事件,需要获取当前行的"可编辑框"的内容,(由于我的列是自动生成的),没有用模板,因此每一个可编辑框没有名字,我用如下方法获取:
string ss = (this.myGridView.Rows[e.RowIndex].Cells[4]).ToString(); (其中4是列序号)

用此方法可以获取主键列的数值(不可编辑的显示数据),不能获取 可编辑框 中的数据.

请大家给个办法.


...全文
454 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxgss 2011-03-14
  • 打赏
  • 举报
回复
为什么我用2楼的方法,会出现这个原因
无法将类型为“System.Web.UI.DataBoundLiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”
zsj830120 2008-03-28
  • 打赏
  • 举报
回复
2楼的方法应该就可以的啊
netspies 2008-03-28
  • 打赏
  • 举报
回复
后面这个上不去,不过还是感谢你.
insus 2008-03-28
  • 打赏
  • 举报
回复
参考这个:
http://download.csdn.net/source/397336

如果下载不了,请给版大留言:
http://webim.csdn.net/Messages/chenxhcc.ashx

如果看了这个例子,还是解决不了你的问题,Insus.NET无语了!
莫名3 2008-03-28
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" Height="144px" Width="768px" AllowPaging="True" CellPadding="4" ForeColor="#333333"
GridLines="None" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="5" AutoGenerateColumns="false" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
<Columns>
<asp:BoundField DataField="u_id" HeaderText="用户ID" ReadOnly="True"/>
<asp:BoundField DataField="u_name" HeaderText="用户名" />
<asp:BoundField DataField="u_age" HeaderText="用户年龄" />
<asp:BoundField DataField="u_sex" HeaderText="用户性别" />
<asp:BoundField DataField="u_phone" HeaderText="用户电话" />
<asp:BoundField DataField="u_email" HeaderText="用户Email" />
<asp:BoundField DataField="u_address" HeaderText="用户地址" />
<asp:CommandField HeaderText="选择" ShowSelectButton="true" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="true"/>
<asp:CommandField HeaderText="编辑" ShowEditButton="true" />
</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="Red" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>

--------------------------------------------------------------
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstr2 = "delete from Users where u_id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand(sqlstr2,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Databinds();
}
//更新的功能
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection con = new SqlConnection(str);
string sqlstr = "update Users set u_name='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',u_age='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',u_sex='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "',u_phone='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "',u_email='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim() + "',u_address='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[6].Controls[0])).Text.ToString().Trim() + "'where u_id='"
+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'";
SqlCommand cmd = new SqlCommand(sqlstr,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
GridView1.EditIndex = -1;
Databinds();

}
//编辑的功能
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Databinds();
}
//退出编辑
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
Databinds();
}
netspies 2008-03-28
  • 打赏
  • 举报
回复
对上面问题的一些补充;

该控件中数据不能指定一个固定的表,根据页面参数来决定.所以不能进行模板绑定.

课程首先介绍了Flutter的主要知识,通过4个案例消化吸收知识点。并通过手把手一步步带您完成一个【我的备忘录】APP项目,使得您真正认识Flutter在实际项目中的优势。  通过本课程学习您可以学习到Flutter技术如下知识:第1章 Flutter概述知识点:移动应用开发现状、移动应用开发类型、Hybrid与移动跨平台开发策略、Flutter是什么?、Flutter特点、Flutter体系结构。第2章 Flutter开发环境搭建知识点:基于Windows的Android开发环境、基于macOS的iOS开发环境、IDE开发工具设置。第3章 Flutter基础知识点:完成一个Flutter程序、一切都是组件(Widget)、组件分类、使用图片和图标资源、使用文本组件、增加调试组件工具。第4章 布局组件知识点:Flutter布局概述、容器布局(Container)、行(Row)、列(Column)布局、层叠布局、ListView、GridView。第5章 Material风格组件知识点:按钮、输入框、复选框、单选按钮、开关按钮、滑块。第6章 iOS Cupertino风格组件知识点:iOS Cupertino页面、Cupertino按钮、Cupertino开关按钮、Cupertino滑块、Cupertino分段控件。第7章 状态管理知识点:状态管理概述、局部状态管理、全局状态管理。第8章 导航知识点:导航概述、面包屑导航、标签导航、页面组件分散在不同文件中、全局状态管理与导航。第9章 工程依赖管理知识点:工程依赖管理概述、pub依赖管理工具。第10章 数据存储知识点:Flutter数据存储策略、键值对数据存储、文件数据存储、SQLite数据存储、示例:数据CRUD操作。第11章 网络通信知识点:搭建自己的Web服务器、使用http包、示例:城市信息列表。第12章 项目实战:我的备忘录APP知识点:备忘录APP项目说明、备忘录项目后台Web服务API说明、备忘录APP项目分析与设计、初始化工程、持久层实现、表示层实现。 

62,072

社区成员

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

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

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

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