GridView中的文本框

本文关键字:文本 GridView | 更新日期: 2023-09-27 18:12:07

我想从GridView内部的文本框中获得文本属性。这个文本框有一些数据来自我的数据库。当我改变这个数据时,我想在数据库中做一个更新。

但是当我搜索我的文本框的文本时,他得到的是来自我的数据库的旧值,而不是我现在放的值。

我该怎么做,得到我的实际数据,我写在我的文本框,而不是来自我的数据库?

protected void VerifyPriority()
{
    for (int i = 0; i < GridView1.Rows.Count; i++)
    {
        GridViewRow RowView = (GridViewRow)GridView1.Rows[i];
        TextBox txt = (TextBox)GridView1.Rows[i].FindControl("txtPriority");
        if (txt != null)
        {
            if (txt.Text != this.changes[i])
            {
                this.UpdatePriority(this.codigo[i], txt.Text);
            }
        }
    }
}

GridView中的文本框

更有可能的是,你在每次回发后重新绑定GridView,而不是绑定一次,让ViewState保存数据。如果你在每次发布页面时都绑定GridView,那么你所做的任何更改都将被删除并替换为数据库中的信息。

只在第一页加载时绑定(在本例中):

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        GridView1.DataSource = GetSomeData();
        GridView1.DataBind();
    }
}

把上面的代码放到适当的位置后,您应该能够从TextBox中获得正确的数据:

foreach (GridViewRow row in GridView1.Rows)
{
    TextBox txt = row.FindControl("TextBox1") as TextBox;
    if (txt != null)
    {
        string value = txt.Text;
    }
}