gridview取编辑时模板列表格数据:出现未将对象引用设置到对象的实例

本文介绍如何在ASP.NET中使用GridView控件编辑日期字段,并利用AJAX CalendarExtender增强用户体验。文章详细展示了设置模板列及使用FindControl方法获取值的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因:该列是模版列

 

要想取其值

 

需要这样,找到其对应列,用FindControl()方法将其找到,并转化成相应类型即可

例:

 string riqi =((TextBox ) this.GridView1.Rows[e.RowIndex].Cells[4].FindControl("TextBox1")).Text.Trim();

或者 

string riqi=this.GridView1.Rows[e.RowIndex].Cells[4].Text;这样取也可以

 

比数据库中有个日期类型的字段,通过GRIDVIEW来编辑,并且要用到AJAX的CalendarExtender日历扩展控件来实现更新

 

1.需要将日期类型字段转化成模板,并加上CalendarExtender日历扩展控件(红色)

<asp:TemplateField HeaderText="日期">
                           <EditItemTemplate>
                               <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("anzhuangriqi") %>'></asp:TextBox>
                               <cc1:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID ="TextBox1" PopupButtonID ="TextBox1">
                               </cc1:CalendarExtender>
                           </EditItemTemplate>
                           <ItemTemplate>
                               <asp:Label ID="Label1" runat="server" Text='<%# Bind("anzhuangriqi") %>'></asp:Label>
                           </ItemTemplate>
                       </asp:TemplateField>

2.对刚才的日期字段模板列取值

 string riqi =((TextBox ) this.GridView1.Rows[e.RowIndex].Cells[4].FindControl("TextBox1")).Text.Trim();

用FindControl()方法将其找到,并转化成相应类型即可,否则取不到值

 

出现未将对象引用设置到对象的实例 就是这个原因引起的

3.更新时,用鼠标点日历控件,直接更新即可

 

4.先退出编辑状态,再绑定数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fangqm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值