2013-08-19 52 views
0

我正在开发一个使用ASP .NET MVC 4的应用程序,该应用程序将使用Kendo网格作为摘要填充结果。我正在使用服务器端操作(分页,筛选和排序)。我曾经通过脚本生成网格,而不是使用kendo UI提供的MVC包装器。通过查询字符串Kendo网格中的默认过滤器值

我有一个场景,其中用户将从查询字符串本身给过滤器。示例网址像下面

http://localhost/Summary/Audit?Startime=19/02/1013&Endtime=12/01/2013&Name=User1

我能够获取并整理出查询字符串,并存储在存储器中的位置。我需要将这些值作为过滤器集合(默认情况下传递给控制器​​)​​,同时创建网格本身。有什么办法可以实现上述场景吗?此外,当用户选择任何过滤器字段时,我需要在过滤器框(过滤器表单)填充这些值。谢谢。

下面是我用来创建通过脚本电网的方式

`var grid = $("#gridSummary").kendoGrid({ 
    dataSource: { 
     type: "aspnetmvc-ajax", 
     dataType: "json", 
     transport: { 
      read: "/Summary/GetAudit", 
      parameterMap: function (data, type) { 
       if (type == "read") { 
        if (data.filter) { 
         if (data.filter.filters) { 
          var FilterCol = ""; 
          var coldelmtr = "<::>"; 
          var rowdelmtr = "{::}"; 
          for (var i = 0; i < data.filter.filters.length; i++) { 
           if (FilterCol.length > 0) 
            FilterCol += rowdelmtr; 
           FilterCol += data.filter.filters[i].field + coldelmtr + data.filter.filters[i].value; 
          } 
         } 
        } 
        return { 
         page: data.page, 
         pagesize: data.pageSize, 
         filters: FilterCol 
        } 
       } 
      } 
     }, 
     pageSize: 50, 
     schema: { data: "Data", total: "Total", 
      model: { 
       fields: { 
        DateTime: { type: "date" }, 
        Name: { type: "string" }, 
        Action: { type: "string" }, 
        On: { type: "string" }, 
        Type: { type: "string" }, 
        By: { type: "string" } 
       } 
      } 
     }, 
     serverPaging: true, 
     serverFiltering: true, 
     serverSorting: false, 
     serverAggregates: true 
    }, 
    scrollable: { 
     virtual: true 
    }, 
    sortable: true, 
    resizable: true, 
    filterable: true, 
    filterMenuInit: function (e) { 
     if (e.field === "DateTime") { 
      var firstValueDropDown = e.container.find("select[data-role='dropdownlist']:eq(0)").data("kendoDropDownList"); 
      //    firstValueDropDown.readonly(); 
      firstValueDropDown.wrapper.hide(); 

      var secondValueDropDown = e.container.find("select[data-role='dropdownlist']:eq(1)").data("kendoDropDownList"); 
      //secondValueDropDown.readonly(); 
      secondValueDropDown.wrapper.hide(); 

      var thirdValueDropDown = e.container.find("select[data-role='dropdownlist']:eq(2)").data("kendoDropDownList"); 
      thirdValueDropDown.select(1); 
      //thirdValueDropDown.readonly(); 
      thirdValueDropDown.wrapper.hide(); 
     } 
    }, 
    columns: columnsCollec 
});` 

回答

相关问题