C# 文本框。文本不';当文本框位于转发器内时,编辑后不会更改
直到最近,以下代码一直按预期工作:C# 文本框。文本不';当文本框位于转发器内时,编辑后不会更改,c#,asp.net,postback,postdata,C#,Asp.net,Postback,Postdata,直到最近,以下代码一直按预期工作: <asp:FormView runat="server" ID="FormView1" OnDataBound="FormView_OnDataBound" DefaultMode="Edit" OnItemUpdating="FormView1_OnItemUpdating" DataSourceID="FormViewDsObjectDS"> <EditItemTemplate>
<asp:FormView runat="server" ID="FormView1" OnDataBound="FormView_OnDataBound" DefaultMode="Edit"
OnItemUpdating="FormView1_OnItemUpdating"
DataSourceID="FormViewDsObjectDS">
<EditItemTemplate>
<asp:Repeater runat="server" ID="RepeaterOfRepeaters" OnItemDataBound="RepeaterOfRepeaters_OnItemDataBound">
<ItemTemplate>
<asp:Repeater runat="server" ID="TextBoxRepeater" OnItemDataBound="TextBoxRepeater_OnItemDataBound">
<ItemTemplate>
<asp:Label runat="server" ID="textLabel" Text='<%# Bind ("LabelText") %>'></asp:Label>
<telerik:RadTextBox runat="server" ID="txtBox" Text='<%# Bind ("Value") %>' OnTextChanged="txtBox_OnTextChanged" OnUnload="txtBox_OnUnload"></telerik:RadTextBox>
<telerik:RadTextBox runat="server" ID="noBindTxtBox" Text="initial value" />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
<telerik:RadButton runat="server" ID="submitButton" CommandName="Update" Text="Update"></telerik:RadButton>
</EditItemTemplate>
</asp:FormView>
事实证明,它不包含更新的文本框值。也就是说,postCollection[postDataKey]
值与最初设置的值相同,即使在更改文本框值之后也是如此。有人知道在什么情况下,LoadPostData
不包含更新值,只包含初始值吗
更新2014-03-19
当在表单视图中直接添加RRadTextBox
时,我可以在LoadPostData
方法中看到更新的Text
属性值
<EditItemTemplate>
<serverControls:RRadTextBox runat="server" ID="directRRadTxtBox" Text="initial Text"/>
我想补充一点,
FormView
不是在PageLoad
事件中绑定的,而是在按钮的OnClick
中绑定的。因此,在编辑过程中不会绑定中继器。在这种特殊情况下,中继器
和表单视图
控件没有问题。显然,我有一个JavaScript函数,可以将中继器创建的所有文本输入控件重置为默认值。此重置JS函数是在对话框关闭事件上执行的。此外,我曾经关闭包含有问题的编辑表单的对话框,并单击提交按钮。因此,我无法在LoadPostData
中看到更新的值,因为它们不在那里。txtBox\u OnTextChanged应该在用户更改txtBox上的文本时触发,对吗?是的,但仅在回发期间触发。如果启用了AutoPostBack
选项,则当控件失去焦点时会触发。在我的例子中,txtBox\u OnTextChanged
方法仅在AutoPostBack
设置为“true”时调用,我可以看到文本框的更改。然而,我正在寻找为什么它首先不起作用。嗯,当你最需要它的时候,哪里有那么多智慧:)这个问题听起来很简单,但解释让它很难解决。我在重新启用AutoPost时获取更改文本值时遇到困难。但对你来说情况似乎不同。
<EditItemTemplate>
<serverControls:RRadTextBox runat="server" ID="directRRadTxtBox" Text="initial Text"/>