Проблема ASP.NET GridView TextBox - PullRequest
2 голосов
/ 07 октября 2009

У меня есть вид сетки на странице, и у него есть поле шаблона:

        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="txtReturn" runat="server" Text="0"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>

И я написал некоторый код в командной кнопке. Нажмите Event, чтобы прочитать 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 всегда равно нулю. Не могли бы вы мне помочь, пожалуйста? Спасибо.

1 Ответ

1 голос
/ 07 октября 2009

Когда вы вызываете DataBind () в таблице или на странице? Часто разработчики связывают данные дважды и переопределяют данные, полученные из Request.Form.

Обязательно проверьте логическое значение Page.IsPostBack.

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        this.myGrid.DataSource = list;
        this.myGrid.DataBind();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...