0

razor asp.net mvc 4で剣道グリッドを表示しています。一連のボタンがあり、各ボタンが異なるグリッドを表示しています。したがって、クリック時にjqueryを使用してボタンイベントを取得しています。次に、dom のグリッド セクションをクリアし、その場所に新しいグリッドをリロードします。つまり、1 つのセクションだけをロードしたいので、href を使用してページ全体をリロードしたくありません。

私の質問は、どのように @(Html.Kendo().Grid を jQuery 内から呼び出すかということです。これは、通常はスクリプト内にさえ存在せず、その中に入れるとすべての構文エラーが表示されるためです。

ご覧のとおり、私はモデルや関数の使用にあまり習熟していません。また、関数が答えである場合は、それをどこに置くかについてもよくわかりません。どんな助けでも大歓迎です。

イアン

4

1 に答える 1

0

あなたがやろうとしているのは 2 つのグリッド間を行ったり来たりすることだけなのか、それともサーバーに戻って更新されたデータを取得しようとしているのかもわかりません。

最初のアプローチはより単純です。これがうまくいくかどうか教えてください:

基本的に、両方のグリッドのコードを記述します (両方がページの読み込み時に初期化されるように) が、一方の可視性をオフにします。次に、jQuery を使用して、クリック時に両方のグリッドの表示を切り替えます。

Jクエリ

function toggleGridView(on, off) {
    var gridToShow = "#Grid" + on + "Container";
    var gridToHide = "#Grid" + off + "Container";
    $(gridToShow).show();
    $(gridToHide).hide();
}

マークアップを表示

<a class="k-button" href="#_" onclick="toggleGridView('1', '2')">Show Grid 1</a>
<a class="k-button" href="#_" onclick="toggleGridView('2', '1')">Show Grid 2</a>

<div id="container">
<div id="Grid1Container">
    @(Html.Kendo().Grid(Model.UserModel.UserAddressBook)
        .Name("Grid1")
        .Columns(columns =>
        {
            columns.Bound(i => i.CompanyName).Width(120).HtmlAttributes(new { id = "CompanyName" });
            //Other column data
        })
    )
</div>
<div id="Grid2Container" style="display:none;">
    @(Html.Kendo().Grid(Model.UserModel.UserProductBook)
        .Name("Grid1")
        .Columns(columns =>
        {
            columns.Bound(i => i.Description).Width(120).HtmlAttributes(new { id = "Description" });
            //Other column data
        })
    )    
</div>

結果

于 2012-10-09T13:51:56.983 に答える