0

在我的asp页面中,我得到了:

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<asp:DropDownList ID="_SCP_ddlStatutDelais" runat="server"></asp:DropDownList>

<asp:TextBox ID="_SCP_tbTypeMiseProduction" Rows="3" runat="server" TextMode="MultiLine"></asp:TextBox>

<asp:Button ID="_btSend" runat="server" Text="Envoyer" CssClass="ms-ButtonHeightWidth"
                                    onclick="_btSend_Click"/>
</asp:Content>

然后,在我后面的代码中,我从数据库中获取值以在我的 Page_Load 中提供我的 TextBox 和 DDL,并且它可以工作。

然后,我想用用户修改的值更新我的数据库,所以我尝试在 TextBox 中获取文本,但我只能从我的数据库中获取文本,而 myTextBox.Text 忽略用户修改的文本。

代码背后:

protected void _btSend_Click(object sender, EventArgs e)
{
Control context = this.Page.Master.FindControl("PlaceHolderMain");
//Informations Database Connection etc...
reflector.Set(d[fieldtomap],rootTypeDescriptor, ref instance, ((TextBox)(context.FindControl(nodeName))).Text);
//Submit update to database
}

例如,如果我从我的数据库中获取:“Test”,我将输入我的 TextBox“Test”。然后用户修改此值,然后使用按钮验证 ((TextBox)(context.FindControl(nodeName)))。文本始终包含“测试”并忽略用户的修改。

4

1 回答 1

1

绑定数据时是否检查 Page.IsPostback?您应该只在初始页面加载时绑定,否则更改将被覆盖 - 就像您正在经历的那样。

于 2012-06-01T12:16:39.090 回答