0

ajax 呼び出しを行った後、DropDownList クライアント側にアイテムを追加する必要があります。

jquery のメソッドを使用して項目を関連する選択に追加すると、そこに追加されますが、後でドロップダウンでこの新しい (クライアント側で追加された) 項目を選択してポストバックを実行すると、問題が発生します。

ポストバックまたはコールバック引数が無効です。イベントの検証は、設定で使用するか、ページで <%@ Page EnableEventValidation="true" %> を使用して有効にします。セキュリティ上の目的で、この機能は、ポストバック イベントまたはコールバック イベントへの引数が、それらを最初にレンダリングしたサーバー コントロールから発信されていることを確認します。データが有効で期待される場合は、ClientScriptManager.RegisterForEventValidation メソッドを使用して、検証のためにポストバックまたはコールバック データを登録します。

DropDownListを正しく変更して、新しいエントリの両方がリストに表示され、その新しい項目が選択された状態でポストバックを作成すると、その値がサーバーに送られ、さらに使用されるようにするにはどうすればよいですか?

4

2 に答える 2

2

私が提案できる戦略は 2 つあります。

  1. ドロップダウン リストのサーバー側に新しい項目を追加し、PostBack を介してサーバーでメソッドを呼び出して、リストがバインドされている DataSet に新しい項目を追加してから、ドロップダウン リストを再バインドします。

  2. 以下に示すように、ViewState をバイパスし、サーバーに送信された投稿値からドロップダウン リストから選択された値を直接取得します。この場合、「往復」して新しいアイテムをサーバー側に追加する必要はありません。

    selectedValue = Request.Form[ - ドロップダウン リスト ID -].ToString();

于 2013-04-16T13:39:58.053 に答える
2

ASP UpdatePanel を使用する必要があります。そうしないと、ViewState の指示とは異なるコントロールで問題が発生することになります。

于 2013-04-16T13:32:31.180 に答える