【问题标题】:Javascript error when filtering Infragistics jQuery grid control过滤 Infragistics jQuery 网格控件时出现 Javascript 错误
【发布时间】:2011-08-19 01:37:06
【问题描述】:

我正在尝试关注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>

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

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

【问题讨论】:

    标签: javascript infragistics ignite-ui iggrid


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 如前所述,这实际上记录在案:help.infragistics.com/jQuery/2012.2/ui.iggridfiltering Dependencies jquery-1.4.4.js jquery.ui.core.js jquery.ui.widget.js jquery-tmpl.js (@987654323 @) ig.ui.grid.framework.js ig.ui.editors.js ig.ui.shared.js ig.datasource.js ig.util.js
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多