过滤Infragistics jQuery网格控件时出现Javascript错误

时间:2011-08-19 01:37:06

标签: javascript infragistics ignite-ui iggrid

我正在尝试关注this example以过滤我的Infragistics jQuery网格。使用Razor我就像这样设置

@( 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>

我从$.tmpl is not a function的第17683行收到错误ig.ui.js。如果我删除网格设置中的过滤线,它就会消失。

可能是因为我正在使用jquery 1.5.1并且脚本是基于jquery 1.4.4构建的吗? 1.5.1是MVC 3项目附带的默认版本。有任何想法吗?

3 个答案:

答案 0 :(得分:1)

这是正确的,网格有一个选项是否使用jQuery模板,默认情况下是关闭的。它被称为jQueryTemplating(true / false)。出于性能原因,这是关闭的 - 默认渲染比jQuery的模板快得多,但后者允许进行模板化。另一方面,过滤也使用模板来设置某些过滤区域的样式,因此这需要加载tmpl.js。它是jQuery的一部分,但我们仍然将它作为产品的一部分。它只需要作为脚本引用包含在您的示例中。

非常感谢您注意到这一点。我们将确保过滤代码中不存在此依赖项。 天使

答案 1 :(得分:0)

对于任何想要了解的人,我最终找到了一个名为jquery.tmpl.js的插件来解决这个问题。 不,我使用jquery 1.5.1并不重要。

答案 2 :(得分:0)

在12.1及更高版本中,有一个自定义模板引擎随Ignite UI工具包提供,它不需要引用jQuery模板,因此不推荐使用jQueryTemplating选项。这也记录在API docs