2012-10-02 150 views
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和可悲的是,我似乎無法把它關閉。

回答

0

這不是去實現它,因爲RouteValue不能在服務器上進行設置(當您呈現電網)

一種方法來實現它的正確方法是使用下拉列表的變化事件,Phonixblade9提到使網格執行請求並從服務器獲取其數據。這可以通過Grid的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' 
    }); 
}); 
1
$(document).ready(function() { 
    $('#workoutType').change(function(){ 
    //bind your data here 
    var data = $(this).value; 
    // pass into your C# stuff here 
    }); 
}); 

會是這樣的工作?