【问题标题】:How to retrieve a changed value of databound textbox within datagrid如何在数据网格中检索数据绑定文本框的更改值
【发布时间】:2010-09-09 21:08:48
【问题描述】:

ASP.NET 1.1 - 我在 ASPX 页面上有一个 DataGrid,它是数据绑定的并在文本框中显示一个值。用户可以更改此值,然后单击一个按钮,其中后面的代码基本上遍历网格中的每个 DataGridItem,为文本框的 ID 执行 FindControl,然后将 .Text 值分配给一个变量,然后用于更新数据库。 DataGrid 使用新值反弹。

我遇到的问题是,将 .Text 值分配给变量时,检索到的值是原始数据绑定值,而不是新输入的用户值。关于可能导致这种行为的任何想法?

代码示例:

foreach(DataGridItem dgi in exGrid.Items)
{
    TextBox Text1 = (TextBox)dgi.FindControl("TextID");
    string exValue = Text1.Text; //This is retrieving the original bound value not the newly entered value
    // do stuff with the new value
}

【问题讨论】:

    标签: c# asp.net datagrid textbox


    【解决方案1】:

    您何时尝试从 TextBox 中检索值?即您提供的代码示例何时执行?

    如果您还没有,您需要为 DataGrid 的 ItemCommand 事件设置一个处理程序方法。您应该在该方法中寻找新的 TextBox 值。您还应该确保您的 DataGrid 在回发时没有被重新绑定。

    我还强烈建议阅读 Scott Mitchell 关于使用 DataGrid 控件及其所有功能的优秀文章系列: http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

    【讨论】:

    • 感谢您的回答 - 这是由于数据网格在回发时反弹,但 Aros 首先进入。将检查链接
    【解决方案2】:

    所以代码示例来自您的按钮点击事件?

    你确定你没有在回发时重新绑定你的数据源吗?

    【讨论】:

    • 嗨 Aros,是的,它在 button_click 事件中。只需检查 page_load 中的绑定...该死的 - 就是这样 - 在 button_click 之前调用 if(!Page.IsPostBack) 之外的绑定。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多