Kendo UI Grid Read 多參數傳遞

摘要:Kendo UI Grid Read 多參數傳遞

最近研究Kendo UI 內的 Grid 需要做一個搜尋的功能

拜讀黑暗執行序大大的文章,以一般一個搜尋條件下是可以達到的,以下節錄 黑暗執行序大大的文章

transport: {
                    read: {
                        //以下其實就是$.ajax的參數
                        type: "POST",
                        url: "/Home/Grid",
                        dataType: "json",
                        data: {
                            //額外傳至後方的參數
                            keywd: function () {
                                return $("#tKeyword").val();
                            }
                        }
                    }
                },

But !! 搜尋的條件,肯定不會只有一個欄位的時候,該怎麼辦呢?

例如: 時間區間、搜尋模式...等

修改如下

public JsonResult Grid(KendoGridRequest request,SearchModel search)
{
   var result = SimMemberInfo.SimuDataStore.Where(o =>
   
   string.IsNullOrEmpty(search.keywd) || o.UserName.Contains(search.keywd));
   
   return Json(new KendoGrid(request, result));
}

其中

public class SearchModel
{
    public string keywd { get; set; }

    public string searchMode { get; set; }
 }

這時候,我們只需要在前端頁面的kendo UI 內設定

transport: {
            read: {
                //以下其實就是$.ajax的參數
                type: "POST",
                url: "/kendo/grid",
                dataType: "json",
                data: function () {
                    return {
                        keywd: $("#tKeyword").val(),
                        SearchMode: SearchMode.value()
                    };
                }                      
            },

 

此時就......大功告成,我們便能夠將我們所需要進行篩選的條件傳到 Controller了
 
為了這問題,花了一個晚上的時間。希望不會再有苦主了
 
Thx