次のコードは、最近まで期待どおりに機能していました。
<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>
が押されたtxtBox.Textときに、編集後にコード ビハインドでプロパティが更新されないことに気付きました。submitButtonまたnoBindTxtBox.Text、同様に更新されません。アプリケーションを開発しているのは私だけではないので、アプリケーションの他の変更の副作用である可能性があると思います。前述の例は、テスト アプリケーションに展開すると問題なく動作します。
現時点では、そのような動作を伴う正確な問題を特定する方法がわかりません。ライフサイクルの問題のようです。
私はasp.netの専門家ではないので、問題を特定するのに役立つデバッグ/トレースのアイデアを捨てることができますか?
ちなみにメソッドではクリック時に値FormView1_OnItemUpdatingを抽出しており、変更されていません。内部メソッドも同様です。送信ボタンをクリックした後でも呼び出されません。txtBox.TextsubmitButtontxtBox_OnUnloadtxtBox_OnTextChanged
2014-03-18 更新
RadTextBox投稿されたバックデータに編集値が含まれているかどうかを確認するためにサブクラス化しました。
public class RRadTextBox : RadTextBox {
protected override bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection){
return base.LoadPostData (postDataKey, postCollection);
}
}
更新されたテキスト ボックスの値が含まれていないことがわかります。つまり、postCollection[postDataKey]テキスト ボックスの値を変更しても、値は最初に設定された値と同じです。LoadPostData初期値だけで更新された値が含まれていない状況を知っている人はいますか?
2014-03-19 更新
がRRadTextBoxフォーム ビューに直接追加されると、メソッドでEditItemTemplate更新されたTextプロパティ値を確認できますLoadPostData。
<EditItemTemplate>
<serverControls:RRadTextBox runat="server" ID="directRRadTxtBox" Text="initial Text"/>
イベントではなくボタンFormViewにバインドされていることを追加したいと思います。したがって、リピーターは編集中にバインドされません。PageLoadOnClick