asp.net中怎么取出嵌套在datagrid里面的textbox的值
最近毕业设计用asp.net(c#)弄个网站,现在出现了个问题忙活了1天多了还没有解决,在这里问问大侠们
我现在在一个页面上拖了个datagrid,在最后一列的模板列里面嵌套了一个textbox,在datagrid外面想用一个button的单击时间,调用这个textbox里面用户输入的数据,但是现在都调用不出来,试过挺多网上说的方法了,但是都不行,专门用了个Label试着显示看看,但是发现调出来的值都是空,到底怎么样才能真正调用这个textbox里面用户输入的值呢?
<asp:TemplateColumn HeaderText= "选择题量 ">
<HeaderStyle Width= "160px "> </HeaderStyle>
<ItemTemplate>
<asp:TextBox id= "QNum " Width= "60 " Runat= "server "> </asp:TextBox>
<asp:RangeValidator id=RVQNum runat= "server " Font-Size= "Smaller " MinimumValue= "0 " MaximumValue= ' <%# Convert.ToInt32(DataBinder.Eval (Container.DataItem, "QuesTotal "))%> ' ErrorMessage= "* " ControlToValidate= "QNum "> </asp:RangeValidator>
</ItemTemplate>
</asp:TemplateColumn>
foreach(System.Web.UI.WebControls.DataGridItem dl in this.QuesKindDataGrid .Items)
{
TextBox a = (TextBox)dl.FindControl( "QNum ");
Label2.Text= a.Text ;
}
相关的两部分代码是这样的,帮我看看我到底那里弄出了
------解决方案--------------------试一下这个:
for (int i = 0;i <this.DataGrid.Items.Count;i++)
{
string value = ((TextBox)this.DataGrid.Items[i].FindControl( "QNum ")).Text;
}
------解决方案--------------------DataGrid.Items[i].Cells[*].FindControl
------解决方案--------------------TextBox a = (TextBox)(dl.FindControl( "QNum "));
试试
------解决方案--------------------刚想了一下
应该是
foreach循环到最后一个datagrid的TextBox的值为空 所以最后得到的也是空
LZ试一下在datagrid里的最后一个TextBox里面输值 看看能不能得到数据?
------解决方案--------------------可能点击button的时候,又执行了grd_ItemDatabound()事件了
------解决方案--------------------初始绑定数据的时候应该这样
void Page_Load(object sender, EventArgs e) {
if(!IsPostBack) { // 确保只在第一次加载页面绑定,否你点击button的时候又绑定会覆盖客户端输入的数据
// 执行绑定代码
}
}
Good Luck!