0

select別の の値に応じて、リストを更新しようとしていますselect。サーバーの呼び出し中。JSONなしでこれを行う方法はありますか。私はサイトをいっぱいにすることを気にしませんPostbackが、別の解決策を好む人はいません.

csHTML と jQuery を使用しています。

コード:

<form action="" method="post">
    <select name="SelectProductGroup" id="SelectProductGroup">
        <option value="0" disabled selected>
            select group
        </option>

        @{
            foreach (ProductGroup vg in productGroupList)
            {
                <option value="@vg.id">
                    @vg.name
                </option>
            }
       }
    </select>

    <select name="UpdateProduct" id="UpdateProduct">
        <option value="0" disabled selected>
            select product
        </option>
    </select>

    <input type="submit" name="btn" value="updateProduct" />
</form>


<script>
    $().ready(function () {
        $('#SelectProductGroup').on('change', function () {
            var options = {
                @{
                    int temp_ID = 0;
                    if(Request["SelectProductGroup"] != null)
                    {
                        temp_ID = int.Parse(Request["SelectProductGroup"]);
                    }
                    int counter = 0;
                    List<Product> productList = Product.getListBy_ProductGroup(temp_ID, connection);
                    string result = "";

                    foreach(Product v in productList)
                    {
                        result += "val" + v.id + " : " + v.name;

                        if(counter < productList.Count())
                        {
                            result += ",";
                        }
                    }

                    <text>
                        @result
                    </text>
                }
            };

            $.each(options, function (val, text) {
                $('UpdateProduct').append(
                        $('<option></option>').val(val).html(text)
                    );
            });
        });
    });
</script>

JSON は優れたソリューションです。頭が回らないようです。したがって、JSON ソリューションに代わるものを探しています ^^

4

2 に答える 2

2

JSON は、(通常は) Web サーバーと Web ブラウザーの間で転送するためにデータをシリアル化する単純な方法です。ほとんどの Web サイトと同じようにそれを利用するには、次のことを行う必要があります。

  1. リスト結果の JSON エンコーディングを返す AJAX メソッドとして getListBy_ProductGroup() 関数を実装するサーバー Web ページを作成します。MVC を使用しているので、これには WebAPI を使用し、おそらくhttp://myserver.com/api/products?id=XXXとして実装します (Web API の編成に専念する REST と呼ばれる考え方全体があります)。 .

  2. Web ブラウザーでは、最初のドロップダウン リストの値が変更されたときに WebAPI ページに対して AJAX 要求が行われ、選択されたドロップダウン値がパラメーターとして渡されるように、JavaScript イベント ハンドラーを接続します。

  3. AJAX 要求への応答が受信されると、2 番目のドロップダウン リストの内容を新しい HTML 要素のセットに置き換える JavaScript が追加されます。

(2) と (3) を実現するのに役立つライブラリはたくさんありますが、jQuery をお勧めします。

申し訳ありませんが、これは詳細ではありませんが、非常に大きな質問です!

于 2013-04-04T13:03:10.757 に答える