2011-08-19 58 views
1

我正在嘗試按照this example來獲取我的Infragistics jQuery網格上的過濾器。使用剃刀我有它設置這樣過濾Infragistics jQuery網格控件時發生Javascript錯誤

@(Html.Infragistics().Grid<InstrumentList>() 
     .ID("igGrid1") 
     .Columns(column => 
     { 
     column.For(x => x.ProcessNo).DataType("int").HeaderText("Process No"); 
     column.For(x => x.SubProcess).DataType("string").HeaderText("Sub Process"); 
     column.For(x => x.Stream).DataType("int").HeaderText("Stream"); 
     column.For(x => x.EquipmentCode).DataType("string").HeaderText("Equipment Code"); 
     column.For(x => x.SequenceNumber).DataType("string").HeaderText("Sequence Number"); 
     column.For(x => x.EquipmentIdentifier).DataType("string").HeaderText("Equipment Identifier"); 
     column.For(x => x.Tag).DataType("string").HeaderText("Tag");  
     }) 
     .Features(features => 
     { 
     features.Sorting().Mode(SortingMode.Single).ColumnSettings(settings => 
     { 
      settings.ColumnSetting().AllowSorting(true); 
     }); 
     features.Selection().MouseDragSelect(true).MultipleSelection(true).Mode(SelectionMode.Row); 
     features.Filtering().ColumnSettings(settings => 
     { 
      settings.ColumnSetting().ColumnKey("Tag").AllowFiltering(false).FilterCondition("startsWith"); 
      }); 
     }) 
     .ClientDataSourceType(ClientDataSourceType.JSON) 
     .DataSourceUrl(Url.Action("GetInstrumentLists")) 
     .Width("100%") 
     .Height("700px") 
     .DataBind() 
     .Render() 
) 

我也有這個在我的佈局文件的頂部列出:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/Infragistics/ig.ui.js")" type="text/javascript"></script> 

我從ig.ui.js 17683線得到一個錯誤$.tmpl is not a function。如果我刪除網格設置中的過濾行,它會消失。

難道是因爲我使用jQuery 1.5.1和腳本建立在jquery 1.4.4上嗎? 1.5.1是MVC 3項目的默認版本。有任何想法嗎?

回答

0

對於任何想知道的人,我最終找到了一個名爲jquery.tmpl.js的插件來解決這個問題。 不,沒關係,我使用jQuery 1.5.1。

+1

如前所述,這其實是在記載:http://help.infragistics.com/jQuery/2012.2/ui.iggridfiltering 依賴 jQuery的1.4.4.js jquery.ui.core.js jQuery的。 ui.widget.js jquery-tmpl.js(https://github.com/jquery/jquery-tmpl) ig.ui.grid.framework.js ig.ui.editors.js ig.ui.shared .js ig.datasource.js ig.util.js –

1

沒錯,網格可以選擇是否使用jQuery模板,默認情況下它是關閉的。它被稱爲jQueryTemplating(true/false)。由於性能方面的原因 - 默認渲染比jQuery的模板快得多,但後者允許模板化。另一方面,過濾也使用模板來過濾某些過濾區域,因此這需要加載tmpl.js。它是jQuery的一部分,但我們仍將其作爲產品的一部分包含在內。它只需要在您的示例中包含爲腳本引用。

非常感謝您的注意。我們將確保這個依賴關係不存在於過濾代碼中。 天使

0

在12.1及更高版本中,提供了Ignite UI工具包提供的自定義模板引擎,無需引用jQuery模板,而jQueryTemplating選項自此以後不再使用。這也記錄在API docs