关于gridview 自定列不能读取数值的问题

问题描述

在gridview1,自定义textbox列,在输入数值后,通过按钮保存其数值,但通过DimtAsTextBox=CType(GridView1.Rows(i).FindControl("txtOnePrice"),TextBox)获取的数值,都是空值,不知道什么原因,从昨晚折腾到现在了,请老鸟指点,感激不尽!!!<%@PageLanguage="vb"EnableViewState="true"AutoEventWireup="false"MasterPageFile="~/Site1.Master"CodeBehind="wydc.aspx.vb"Inherits="Web.wydc"title="在线订餐"%><asp:ContentID="Content1"ContentPlaceHolderID="head"runat="server"></asp:Content><asp:ContentID="Content2"ContentPlaceHolderID="ContentPlaceHolder1"runat="server"><asp:PanelID="Panel2"runat="server"Visible="False"><asp:CalendarID="Calendar1"runat="server"BackColor="#FFFFCC"BorderColor="#FFCC66"BorderWidth="1px"DayNameFormat="Shortest"Font-Names="Verdana"Font-Size="8pt"ForeColor="#663399"Height="200px"ShowGridLines="True"Width="220px"><SelectedDayStyleBackColor="#CCCCFF"Font-Bold="True"/><SelectorStyleBackColor="#FFCC66"/><TodayDayStyleBackColor="#FFCC66"ForeColor="White"/><OtherMonthDayStyleForeColor="#CC9966"/><NextPrevStyleFont-Size="9pt"ForeColor="#FFFFCC"/><DayHeaderStyleBackColor="#FFCC66"Font-Bold="True"Height="1px"/><TitleStyleBackColor="#990000"Font-Bold="True"Font-Size="9pt"ForeColor="#FFFFCC"/></asp:Calendar><asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"BackColor="White"BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3"GridLines="Vertical"><RowStyleBackColor="#EEEEEE"ForeColor="Black"/><Columns><asp:BoundFieldDataField="餐次名称"FooterText="预定餐次"HeaderText="预定餐次"/><asp:BoundFieldDataField="开始时间"FooterText="开始时间"HeaderText="开始时间"/><asp:BoundFieldDataField="结束时间"FooterText="结束时间"HeaderText="结束时间"/><asp:BoundFieldDataField="订餐份数"FooterText="已订份数"HeaderText="已订份数"/><asp:TemplateFieldFooterText="订餐份数"HeaderText="订餐份数"><ItemTemplate><asp:TextBoxID="txtOnePrice"runat="server"Height="21px"Width="75px"></asp:TextBox></ItemTemplate></asp:TemplateField><asp:ButtonFieldFooterText="订餐"HeaderText="订餐"Text="订餐"/></Columns><FooterStyleBackColor="#CCCCCC"ForeColor="Black"/><PagerStyleBackColor="#999999"ForeColor="Black"HorizontalAlign="Center"/><SelectedRowStyleBackColor="#008A8C"Font-Bold="True"ForeColor="White"/><HeaderStyleBackColor="#000084"Font-Bold="True"ForeColor="White"/><AlternatingRowStyleBackColor="Gainsboro"/></asp:GridView>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:ButtonID="Button2"runat="server"Text="保存订餐信息"/></asp:Panel></asp:Content>以下是vb代码PublicPartialClasswydcInheritsSystem.Web.UI.PagePublicdtccAsNewDataTableProtectedSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadIfSession("loginuserbh")<>""ThenPanel2.Visible=TrueDimxfsAsNewService1'这是个webservicedtcc=xfs.select_canci(Session("loginuserbh"),IIf(Format(Calendar1.SelectedDate,"yyyy-MM-dd")="0001-01-01",Date.Now,Format(Calendar1.SelectedDate,"yyyy-MM-dd")))GridView1.DataSource=dtccGridView1.DataBind()EndIfEndSubProtectedSubButton2_Click(ByValsenderAsObject,ByValeAsEventArgs)HandlesButton2.ClickFori=0Todtcc.Rows.Count-1dtcc.Rows(i).Item("编号")=Session("loginuserbh")dtcc.Rows(i).Item("姓名")=Session("loginuserxm")dtcc.Rows(i).Item("订餐日期")=IIf(Format(Calendar1.SelectedDate,"yyyy-MM-dd")="0001-01-01",Date.Now,Format(Calendar1.SelectedDate,"yyyy-MM-dd"))DimtAsTextBox=CType(GridView1.Rows(i).FindControl("txtOnePrice"),TextBox)dtcc.Rows(i).Item("订餐份数")=t.Text'这里一直显示的是空值NextDimxfsAsNewService1xfs.dc(dtcc)EndSubProtectedSubGridView1_RowCommand(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.GridViewCommandEventArgs)HandlesGridView1.RowCommandDimindexAsInteger=Convert.ToInt32(e.CommandArgument)DimtAsTextBox=CType(GridView1.Rows(index).FindControl("txtOnePrice"),TextBox)dtcc.Rows(index).Item("订餐份数")=t.TextEndSubEndClass

解决方案

解决方案二:
自定义列是你那样的吗?参考:<asp:TemplateFieldHeaderText="编号"><ItemTemplate><asp:TextBoxID="txtOnePrice"runat="server"Height="21px"Width="75px"/></ItemTemplate></asp:TemplateField>

解决方案三:
对不起,看错了,你那样是对的。。。。
解决方案四:
是因为数据绑定的原因么,那一列没绑定,还有在textbox_TextChanged事件里里面没有任何反应
解决方案五:
引用3楼的回复:

是因为数据绑定的原因么,那一列没绑定,还有在textbox_TextChanged事件里里面没有任何反应

运行后的页面代码,看看textbox在不在页面里
解决方案六:
怎么看?
解决方案七:
先跟踪一下看看FindControl有没有找到哪个textbox。
解决方案八:
问题解决了,在Page_Load时数据又被重新加载了

时间: 2024-08-01 18:29:34

关于gridview 自定列不能读取数值的问题的相关文章

数据库-vs2010的gridview加模板列实现文件上传的功能,如图,求后台具体代码,谢谢!!!

问题描述 vs2010的gridview加模板列实现文件上传的功能,如图,求后台具体代码,谢谢!!! vs2010加access想实现图上的功能,即在gridview的模板列添加了一个fileupload控件,实现浏览文件然后上传到数据库里面,求高人给出后台的具体代码,谢谢!!! 解决方案 http://download.csdn.net/detail/sanyingwenkui/2585448

把checkboxlist放进gridview的模板列后用UpdatePanel,发现了一个神奇的现象

问题描述 事情是这样的,,今天偶然试了下将checkboxlist放进gridview的模板列,然后用updatepanel将其包起来,按理说,对复选框的选择不会只会导致其本身的更新,而不会引起页面的刷新(事实上我试了checkbox,dropdownlist,radiobuttonlist所有的空间,都只是局部更新),只有该死的checkboxlit会导致整个页面的刷新....大牛们你们发挥的时候到了!!!!!小白怒求解惑!!!阉割后的代码为:前台:<asp:GridViewID="BO

数据不更新-对GridView的一列数据进行修改,点击保存后,数据并没有更新

问题描述 对GridView的一列数据进行修改,点击保存后,数据并没有更新 protected void Button1_Click(object sender, EventArgs e) { for (int i = 0; i < GridView1.Rows.Count; i++) { GridViewRow row = GridView1.Rows[i]; string connString = "Data Source=ilovefamily\mysql;Initial Catal

如何把listView的某一列全部读取出来??如果有三个列有怎样读??

问题描述 如何把listView的某一列全部读取出来??如果有三个列要全部读取怎样读??自学遇到难题了,求例子!谢谢各位大神了! 解决方案 解决方案二:既然是自学,那么你就应该提出你的入门书上的问题,贴出你的入门书上的demo来测试.自己随便想像一些问题,这怎么叫自学啊?这叫乱碰.解决方案三:既然标榜自学,就不要提这类问题,而要先把入门书上的东西看懂."吃透".这样对你有好处.

向GridView的模板列绑定OnClientClick的函数时出现了奇怪的问题

原文:向GridView的模板列绑定OnClientClick的函数时出现了奇怪的问题      GridView的一个模板列中的内容是按钮,需要实现以下的效果:      GridView分页显示数据,点击编辑按钮(模板列)弹出模态窗口以编辑信息,编辑完成后刷新页面,若放弃编辑则不需要刷新页面. 这时就需要点击按钮后调用javascript函数以弹出模态窗口.最初使用以下的方法: CodeOnClientClick='return openEditWindow(<%#(DataBinder.E

ASP.NET中GridView 重复表格列合并的实现方法_实用技巧

这几天做一个项目有用到表格显示数据的地方,客户要求重复的数据列需要合并,就总结了一下GridView 和 Repeater 关于重复数据合并的方法. 效果图如下: GridView : 前台代码 : <div> <asp:GridView ID="gvIncome" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateFie

asp.net 合并GridView中某列相同信息的行(单元格)_实用技巧

                                        解决方法如下(写在公共模块里,定义为静态方法方便调用): 复制代码 代码如下: /// <summary> /// 合并GridView中某列相同信息的行(单元格) /// </summary> /// <param name="GridView1">GridView</param> /// <param name="cellNum"

C#读取Excel 使用 OleDbConnection 怎么才能把列全部读取出来!

问题描述 如标题,如果Excel里面有1000个列,但是OleDbConnection每次只能读取255个列,是客户需要做的,不可能去改客户服务器上的注册表,求指导! 解决方案 解决方案二:这个还有限制吗?能贴代码看看嘛?解决方案三:我靠,居然有这种限制.解决方案四:引用1楼yb871201的回复: 这个还有限制吗?能贴代码看看嘛? 引用2楼winner2050的回复: 我靠,居然有这种限制. OleDbConnectioncnnxls=newOleDbConnection("Provider=

数据-SQL中将多行中的一个字段列中的数值加/号组合在一起

问题描述 SQL中将多行中的一个字段列中的数值加/号组合在一起 一张表中有以下字段,想做如下处理,将统一DJLSH下相同的GNLX的XMBH与XMMC合并成一条数据. 1401090002的DJLSH中,XMBH803膀胱的GNLX是B超,802也是B超,那么就要进行合并. 实现的效果如下: 求组各位大神! 解决方案 oracle的wmsys.wm_concat,oralce11g开始特有的listagg mysql的group_concat函数 sqlserver的xml path 都是处理你