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,而不是绑定一次,让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;
}
}