2014-10-27 115 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