0

ドロップダウンリストの結果に応じて表示したいグリッドがあります。select( "controller"、 "action"、data)メソッドに値を送信できないようです。どうやってやるの?JavaScriptで処理できません。

これはドロップダウンリストです

                    <select id="workoutType" onchange="changed(value)">
                    @{ foreach (var type in Model.WorkoutTypes)
                      { 
                        <option value="@type"> @type </option>
                      }
                    }
                    </select> 

これがグリッドです

                        @(Html.Telerik().Grid(Model.Approvers)
                            .Name("Orders")
                            .DataBinding(dataBinding => dataBinding
                                //Ajax binding
                                  .Ajax()
                                //The action method which will return JSON
                                      .Select("__AjaxBinding", "AssetResearch", new { workoutType = ViewData["dropDownValue"] })
                            )
                            .Columns(columns =>
                                {
                                    columns.Bound(o => o.InvestorName).Width(125);
                                    columns.Bound(o => o.ApproverType).Title("Type").Width(100);
                                    columns.Bound(o => o.Email).Title("E-mail Address");
                                })
                            .ClientEvents(events => events
                                .OnDataBinding("onDataBinding")
                                )
                            .Pageable()
                            .Sortable()
                    )       

Viewbagを使ってみましたが、残念ながらうまくいかないようです。

4

2 に答える 2

1
$(document).ready(function() {
    $('#workoutType').change(function(){
    //bind your data here
    var data = $(this).value;
    // pass into your C# stuff here
    });
});

このようなものは機能しますか?

于 2012-10-02T22:10:34.760 に答える
0

RouteValueをサーバーに設定できないため(グリッドをレンダリングしている場合)、これを実現する正しい方法ではありません。

これを実現する1つの方法は、Phonixblade9が言及したDropDOwnListの変更イベントを使用して、グリッドに要求を実行させ、サーバーからデータをフェッチすることです。これは、グリッドのajaxRequestメソッドを介して実現できます。

これが私が意味することです:

$(document).ready(function() {
    $('#workoutType').change(function(){

        var data = $(this).value;

        var gridClientObject = $('#Orders').data().tGrid;
        gridClientObject.ajaxRequest({workoutType :data});// do not forget to name the parameter in the action again method again 'workoutType'
    });
});
于 2012-10-04T20:20:38.543 に答える