1

我正在尝试按照此示例对我的 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 functionig.ui.js. 如果我删除网格设置中的过滤线,它就会消失。

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

4

3 回答 3

1

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

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

于 2011-08-19T08:41:48.107 回答
0

在 12.1 及更高版本中,Ignite UI 工具包提供了一个自定义模板引擎,它消除了引用 jQuery 模板的需要,并且 jQueryTemplating 选项已被弃用。这也记录在API 文档中。

于 2012-11-14T11:59:03.200 回答
0

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

于 2011-08-19T02:47:56.153 回答