1

ドロップボックスが2つあるページがあります。2番目のドロップボックスのデータは、1番目のドロップボックスで選択したデータに応じて変更されます.1番目のドロップボックスで変更されたデータはクライアントスクリプトにあります。サーバーの2番目のドロップボックスで選択した値を取得しようとしましたこの問題を修正するにはどうすればよいですか?

コードは次のとおりです。

<div class="field">
    <input type="hidden" id="ddlFormatOriginalData" name="ddlFormatOriginalData" runat="server" />
    <asp:DropDownList ID="d1" runat="server">
    </asp:DropDownList>
</div>

<div class="field">
    <input type="hidden" id="ddlFormatOriginalData" name="ddlFormatOriginalData" runat="server" />
    <asp:DropDownList ID="d2" runat="server">
    </asp:DropDownList>
</div>

Javascript側

$addHandler(ddlFormat, 'change', upDateD2);

function upDateD2(sender) {

    var PaperList = $get(ddlPaperStockID); // gets the list for a certain selected value in d1

    for (j = 0; j < PaperList.options.length; j++) {
        // added List here to d2
    }
}

サーバ側

string val = d2.selected.value;

しかし、firebugではd2ドロップボックスの別のリストが表示されていましたが、valには何も得られませんでした。

4

2 に答える 2

0

次のように使用できます

protected override void OnInit(EventArgs e)
{
     var postedOptionValue = Request.Form[d2.UniqueID];
     d2.Items.Add(new ListItem(postedOptionValue));
     base.OnInit(e);
}

ただし、次の例外に注意する必要があります

Invalid postback or callback argument.  

イベント検証は、を使用して有効になります

   <pages enableEventValidation="true"/> 

構成または

    <%@ Page EnableEventValidation="true" %> 

ページ内。セキュリティ上の理由から、この機能は、ポストバックまたはコールバックイベントへの引数が、それらを最初にレンダリングしたサーバーコントロールから発生していることを確認します。
データが有効で期待される場合は、ClientScriptManagerを使用してください。
検証のためにポストバックまたはコールバックデータを登録するためのRegisterForEventValidationメソッド。

編集1

詳細-
無効なポストバックまたはコールバック引数。ドロップダウンリストにjqueryが入力されていて、ポストバックがある場合

于 2013-02-20T05:44:08.690 に答える
0

JQueryデータを使用してみてください-例:

<div id="test" data-cool="demo"></div>

とJSで:

$("#test").data("cool"); // outputs: 'demo'

また、これを使用して更新変数を設定することもできます。

$("#test").data("cool", "really cool!"); // updates the data-cool field to: 'really cool!'
于 2013-02-20T05:57:21.740 に答える