问题描述
我用的2005我在datagrid模板列里绑定了一个textbox控件,在页面上另外有一个保存按钮,我想能实现在点击保存按钮的时候,获得textbox的值,但是我在响应点击事件的时候,通过findcontrol可以找到这个textbox,不过里面的值却始终为空。请大家帮忙啊!谢谢<asp:DataGridID="gdData"runat="server"CssClass="sdatagridex_a"CellPadding="0"CellSpacing="0"Width="100%"BorderWidth="0px"HeaderStyle-Height="30px"Font-Size="10pt"Font-Names="宋体"AllowSorting="false"AutoGenerateColumns="False"ShowHeader="False"><AlternatingItemStyleHorizontalAlign="Center"Height="25px"CssClass="bg_td"VerticalAlign="Middle"></AlternatingItemStyle><ItemStyleHorizontalAlign="Center"Height="25px"CssClass="bg_td"VerticalAlign="Middle"></ItemStyle><Columns><asp:BoundColumnDataField="target_unit"SortExpression="target_unit"><HeaderStyleWidth="35%"></HeaderStyle><ItemStyleHorizontalAlign="Center"VerticalAlign="Middle"></ItemStyle></asp:BoundColumn><asp:TemplateColumn><HeaderStyleWidth="65%"></HeaderStyle><ItemStyleHorizontalAlign="left"></ItemStyle><ItemTemplate><asp:TextBoxID="box"Width="100"Runat="server"CssClass="stext_a"Visible="true"></asp:TextBox></ItemTemplate></asp:TemplateColumn></Columns><HeaderStyleHeight="30px"/></asp:DataGrid>
解决方案
解决方案二:
gdData绑定数据源时加上if(!IsPostBack)如下:if(!IsPostBack){gdData.DataSource=??;gdData.DataBind();}
解决方案三:
楼上说的好像不行因为我是在另外的地方绑定数据源的,我调试了一下,在我点击保存按钮的时候,没有去重新绑定数据。而且我在textbox里绑定的数据是从数据库里读出来的,原来数据库里有值,可是我在保存的时候,获得的textbox里的值为空
解决方案四:
解决方案五:
假如你在gridview中添加一个模板列,并在模板列中存放了一个dropdownlist控件。那么,问题就是:你如何去操作这个dropdownlist控件????//对于gridview控件:System.Web.UI.WebControls.GridViewRowrows=(GridViewRow)((Control)sender).Parent.Parent;//获取对于ui层次结构中服务器控件的父控件的父控件的引用DropDownListlist=(DropDownList)rows.FindControl("DropDownList1");//对于datagrid控件:System.Web.UI.WebControls.DataGridItemitem=(DataGridItem)((Control)sender).Parent.Parent;//获取对于ui层次结构中服务器控件的父控件的父控件的引用DropDownListlist=(DropDownList)rows.FindControl("DropDownList1");其实运用的就是findcontrol方法。System.Web.UI.WebControls.GridViewRowrows=(GridViewRow)((Control)sender).Parent.Parent;//获取对于ui层次结构中服务器控件的父控件的父控件的引用之前博客里的文章,你可以看看。