【问题标题】:Kendo Grid Custom comboBox Filter剑道网格自定义组合框过滤器
【发布时间】:2014-01-22 10:39:16
【问题描述】:

我有一个网格,它会将数据加载为可过滤的组合框,所以我需要为这个列创建自定义过滤器和可过滤的组合框。

我创建组合框并将其分配给列过滤器 UI。我的问题是当组合框从控制器读取数据时,它不会将过滤器文本发送到控制器。

<script type="text/javascript">
function outletFilter(element) {
        debugger;
                    element.kendoComboBox({
                     dataTextField: "OutletNameE",
                        dataValueField: "OutletID",
                    autoBind: false,
                     minLength: 1,
                        dataSource: {
                        serverFiltering: true,
                        transport: {
                            read: "@Url.Action("GetOutletsCombo")"
                           }
                           },                                                         
                        optionLabel: "--Select Value--"
                    });
                    }

    </script>

 @(Html.Kendo().Grid<Spine.ERP.ViewModel.AccountReceivableOutletViewModel>()
    .Name("ARDetails_OutletGrid")
    .Columns(columns =>
    {

        columns.Bound(p => p.AccountReceivableID).Hidden();
        columns.Bound(p => p.AccountReceivableOutletID);
        columns.Bound("Outlet.OutletName")
           .EditorTemplateName("OutletForeignKeyEditor")
            .ClientTemplate("<a>#=OutletID ##=OutletID? '-' : ' ' ##=OutletID ? 

Outlet.OutletName :  ' ' #</a>")
.Filterable(filter => filter.UI("outletFilter"));    
        })

这是我的控制器功能

public ActionResult GetOutletsCombo(string text)
        {
            if (text == null)
                text = "";
            var result = new List<OutletViewModel>();
            var Outlets = outletRepository.FilterOnID("Outlet", new string[] { "OutletID", "OutletNameE" }, text).ToList();
            result = (from outlet in Outlets
                      select new OutletViewModel
                      {
                          OutletID = outlet.OutletID,
                          OutletNameE = outlet.OutletNameE,
                          OutletNameA = outlet.OutletNameA
                      }).ToList();
            return Json(result, JsonRequestBehavior.AllowGet);
        }

【问题讨论】:

    标签: asp.net-mvc-4 kendo-ui kendo-grid kendo-combobox


    【解决方案1】:

    首先,如果您执行“读取”,它不会向控制器发送任何附加值,因此在“public ActionResult GetOutletsCombo(string text)”中,您不会在“文本”中获得任何值。

    关于服务器过滤,你可以在下一页看到剑道的演示

    http://demos.kendoui.com/web/combobox/serverfiltering.html
    

    据我从你的问题中得到的,你想做一个剑道网格,在那里你想有一个组合框来过滤网格中的数据。在这种情况下,您可以在 Kendo 的网站上查看类似类型的演示

    http://demos.kendoui.com/web/grid/toolbar-template.html
    

    对于过滤器菜单,您可以在 ASP.NET MVC 下的 kendo 上查看它

    http://demos.kendoui.com/web/grid/filter-menu-customization.html
    

    希望您可以从这些示例中解决您的问题。以防您无法在此帖子下方发表评论。我会再试一次来帮助你。

    【讨论】:

    • 感谢您的回复,我想要的是将列内的默认过滤器控件从文本框更改为可过滤的组合框,使其类似于列数据字段,而不是工具栏中的过滤器。跨度>
    • @WaelJoulani 在那种情况下你检查过这个demos.kendoui.com/web/grid/filter-menu-customization.html 吗?让我知道这是否有帮助。
    • 是的,我检查它并将组合框添加到过滤器列,但我的问题是当我尝试在此组合框中过滤时搜索到的文本未发送到控制器
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多