c# - GridView 中的文本框

标签 c# asp.net gridview ado.net

我想从 GridView 中的 TextBox 获取 Text 属性。这个 TextBox 有一些数据来 self 的数据库。当我更改此数据时,我想在我的数据库中进行更新。

但是当我搜索我的 TextBox 的文本时,他得到的是来 self 的数据库的旧值,而不是我现在输入的值。

我该怎么做才能获得我在 TextBox 中写入的实际数据,而不是来 self 的数据库的数据?

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);
            }
        }
    }
}

最佳答案

您很可能在每次回发后重新绑定(bind) GridView,而不是绑定(bind)一次并让 ViewState 保留数据。如果每次回发页面时都绑定(bind) GridView,则您所做的任何更改都将被清除并替换为数据库中的信息。

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

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;
    }
}

关于c# - GridView 中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856175/

相关文章:

javascript - 如何使用unobtrusive-ajax在ajax请求后删除DOM元素?

android - GridView 和多余的空间填充

c# - Linq 和 EntityFramework 4 具有多个内部连接和嵌套子查询

c# - 任务完成后更新 ASP.NET 标签

javascript - 获取与一个用户相关的所有角色 (ASP.NET)

java - ListAsGridBaseAdapter 仅在项目数为偶数时显示网格项目

java - 当 GridView 中的文本为 null 或为空时如何显示图像,反之亦然?

c# - 将 UITableView 从列表切换到分组的最佳方法是什么?

c# - 设置包含动态添加图像的div的高度和宽度

javascript - window.event javascript 代码在 Firefox 中不起作用