2014-10-27 117 views
0

我曾试图按照剑道例子(http://demos.telerik.com/aspnet-mvc/grid/filter-menu-customization),但我清楚地失去了一些东西......剑道MVC电网定制过滤器不工作

电网负荷数据就好了。 JavaScript函数costCenterNumberFilter(element);被执行,因为我已经放置了一个alert("WTF!?!?");并且在浏览器中显示该文件...

它不会为成本中心编号过滤器呈现自动完成。任何帮助将不胜感激。

我查了几个其他的问题,很少有人回答。

Index.cshtml:

@model IEnumerable<LoanFee> 

@{ 
    ViewBag.Title = "Fees"; 
} 

@(Html.Kendo().Grid<LoanFee>(Model) 
    .Name("Grid") 
    .Columns(columns => 
    { 
     columns.Command(cmd => cmd.Select()) 
      .HtmlAttributes(new { style = "text-align: center;" }) 
      .Width(100); 
     columns.Bound(p => p.AccountNumber) 
      .Width(170); 
     columns.Bound(p => p.CustomerName); 
     columns.Bound(p => p.StatusId) 
      .Template(@<text></text>) 
      .HtmlAttributes(new { @class = "status-dropdown" }) 
      .ClientTemplate(Html.Kendo().DropDownList() 
       .Name("ddlStatus_#=LoanFeeId#") 
       .DataTextField("Name") 
       .DataValueField("Value") 
       .BindTo(Status.Items()) 
       .Value("#=StatusId#") 
       .ToClientTemplate() 
       .ToHtmlString()) 
      .Title("Status") 
      .Width(100); 
     columns.Bound(p => p.Approvals) 
      .HtmlAttributes(new { style = "text-align: center;" }) 
      .Width(100); 
     columns.Bound(p => p.Amount) 
      .Format(Formats.CURRENCY) 
      .HtmlAttributes(new { style = "text-align: right;" }) 
      .Width(120); 
     columns.Bound(p => p.Allocation.PrimaryOfficerName) 
      .Template(@<text></text>) 
       .ClientTemplate("#=Allocation.PrimaryOfficerNumberDashName#") 
      .Width(220); 
     columns.Bound(p => p.CostCenterNumber) 
      .Title("Cost Center") 
      .HtmlAttributes(new { style = "text-align: center;" }) 
      .Filterable(filterable => 
      { 
       filterable.Extra(false); 
       filterable.Operators(o => o.ForString(fs => 
       { 
        fs.Clear(); 
        fs.Equals("Equals"); 
       })); 
       filterable.UI("costCenterNumberFilter"); 
      }) 
      .Width(100); 
     columns.Bound(p => p.DateEntered) 
      .Format(Formats.DATE) 
      .HtmlAttributes(new { style = "text-align: center;" }) 
      .Width(100); 

    }) 
    .Events(e => e.DataBound("initStatusDropdown")) 
    .Pageable() 
    .Filterable() 
    .DataSource(ds => ds 
     .Ajax() 
     .PageSize(15) 
     .Sort(sort => sort.Add(p => p.AccountNumber)) 
     .Model(m => 
     { 
      m.Id(p => p.LoanFeeId); 
     }) 
     .Read(read => read.Action("Index_Read", "WorkQueue")) 
    ) 
) 

<script type="text/javascript"> 

    function initStatusDropdown(e) { 

     $(".status-dropdown").each(function() { 

      eval($(this).children("script") 
       .last() 
       .html()); 
     }) 
    } 

    function costCenterNumberFilter(element) { 

     element.kendoAutoComplete({ 
      datasource: ["3200", "4200", "1000"] 
     }); 
    } 

</script> 

WorkQueueController.cs:

using Kendo.Mvc.UI; 
using Kendo.Mvc.Extensions; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace CommercialIncentive.Web.Areas.Fees.Controllers 
{ 
    public class WorkQueueController : BaseController 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 

     public ActionResult Index_Read([DataSourceRequest] DataSourceRequest request) 
     { 
      var data = IocContainer.Get<ILoanFeeService>() 
        .ListAsQuery() // Returns IQuerable<LoanFee> 
        .ToDataSourceResult(request); 

      return Json(data); 
     } 
    } 
} 

回答

1

数据源酒店有小写小号...

变化:

function costCenterNumberFilter(element) { 

     element.kendoAutoComplete({ 
      datasource: ["3200", "4200", "1000"] 
     }); 
    } 

至:

function costCenterNumberFilter(element) { 

     element.kendoAutoComplete({ 
      dataSource: ["3200", "4200", "1000"] 
     }); 
    } 
+0

谢谢!那是在杀我。 – bytebender 2014-10-30 17:34:31