我在页面中有一个gridview,它有一个模板字段:
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="txtReturn" runat="server" Text="0"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
我在命令按钮中编写了一些代码单击“事件”以读取此文本框的TextValue:
int i = 0;
foreach (GridViewRow row in grdFactor.Rows)
{
TextBox txt = (TextBox)(row.FindControl("txtReturn"));
int ret = 0;
try
{
ret = Int32.Parse(txt.Text);
if (ret > 0 && ret < factor.Orders[i].Entity)
{
factor.Orders[i].updateReturn(ret);
}
}
catch (Exception ex) { }
i++;
}
但是txt.Text的值总是为零。 请问你能帮帮我吗? 感谢。
答案 0 :(得分:1)
您何时在网格或网页上调用DataBind()?通常,开发人员会将数据绑定两次并覆盖从Request.Form收到的数据。
请务必检查Page.IsPostBack布尔值。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.myGrid.DataSource = list;
this.myGrid.DataBind();
}
}