【问题标题】:Kendoui Grid Custom Filter UI Retrieve Value from DatasourceKendoui Grid 自定义过滤器 UI 从数据源检索值
【发布时间】:2014-02-20 10:23:26
【问题描述】:

我正在尝试为我在剑道网格中的一列创建一个过滤器 UI,该网格将成为下拉选择。

到目前为止我有:

function stateFilter(element)
{
  element.kendoDropDownList({
    dataSource: [
      {
        "state": "New",
        "stateId": 1
      },
      {
        "state": "Current",
        "stateId": 2
      },
      {
        "state": "Non-finalised",
        "stateId": 7
      }
    ],
    optionLabel: 'Select state',
    dataTextField: 'state',
    dataValueField: 'stateId',
    template: '#="<span class=\'filterTrigger\' data-value=\'"+stateId+"\'>"+state+"</span>" #',
    select: function(e)
    {
      console.log(e)
      var val = e.item[0].innerHTML
      val = val.substring(41, 40);
      html = e.item[0].innerText;
      activeFilter = activeFilter.filter(function( obj ) {
        return obj.field !== 'state';
      })
      activeFilter.push({
        field: 'state',
        operator: 'eq',
        value: val
      })
      $('.k-animation-container').hide();
      filtersState = 1 ;
      grid.dataSource.filter(activeFilter);
    }
  })
}

有没有更好的方法从数据源中获取stateId,而不是将其作为数据参数传递并使用substring() 将其分割并作为值传递?

【问题讨论】:

    标签: javascript jquery kendo-ui kendo-grid kendo-dropdown


    【解决方案1】:

    我不完全确定你在做什么。如果您只是想在网格中的列上添加一个下拉列表作为过滤器,那么您正在做的事情要容易得多。

    这是一个快速示例...http://jsbin.com/coreh/1/edit

    如果这不是您的意思,请为您的网格发布代码,以便更好地确定您要完成的工作。

    【讨论】:

      【解决方案2】:

      这是一个剑道网格,在网格中有一个下拉菜单来更改值和它的剃刀语法。对于它的价值,我会发布代码。它被截断了一点,所有的开盘/收盘磅都应该对齐。

       columns.Bound(m => m.IncludeInForecast).HtmlAttributes(new { Align="center"}).Title("Include In Forecast?").ClientTemplate(
      
      "\\# if (IncludeInForecast == true) { \\#" +
      
                                        "<select id='\\#= OrderDetailId \\#' onchange=SaveIncludeInForecast('\\#= OrderDetailId \\#','\\#= ProposalId \\#'); style='Width: 80px; color: 'navy' > " +
                                          "<option id='yes' selected value='1'>Yes</option>" +
                                          "<option id='no' value='0'>No</option>" +
      
                                          "</select>" +
                                   "\\# } else { \\#" +
                                        "<select id='\\#= OrderDetailId \\#' onchange=SaveIncludeInForecast('\\#= OrderDetailId \\#','\\#= ProposalId \\#'); style='Width: 80px; color: 'navy' > " +
                                          "<option id='yes'  value='1'>Yes</option>" +
                                          "<option id='no' selected value='0'>No</option>" +
                                       "\\# } \\#" +
                              "\\# }
      );
      

      您会注意到我正在执行此操作的地方'\\#= ProposalId \\#'。这就是您可以从模型中获取值的方式。

      然后是结果函数

      function SaveIncludeInForecast(orderDetailId, proposalId)
      {      
      
      }
      

      希望这不是完全没用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-24
        • 2015-10-13
        • 1970-01-01
        • 2015-05-02
        • 1970-01-01
        • 2014-10-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多