1

この例に従って、InfragisticsjQueryグリッドでフィルタリングを取得しようとしています。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は、MVC3プロジェクトに付属するデフォルトバージョンです。何か案は?

4

3 に答える 3

1

そうです、グリッドにはjQueryテンプレートを使用するかどうかのオプションがあります。これはデフォルトでオフになっています。これはjQueryTemplating(true / false)と呼ばれます。パフォーマンス上の理由からオフになっています。デフォルトのレンダリングはjQueryのテンプレートよりも大幅に高速ですが、後者ではテンプレートを使用できます。一方、フィルタリングでは、一部のフィルタリング領域のスタイリングにテンプレートを使用するため、tmpl.jsをロードする必要があります。これはjQueryの一部ですが、製品の一部として引き続き含まれています。例にスクリプト参照として含める必要があるだけです。

これに気づいてくれてありがとう。この依存関係がフィルタリングコードに存在しないことを確認します。天使

于 2011-08-19T08:41:48.107 に答える
0

知りたい人のために、私は問題を解決するjquery.tmpl.jsというプラグインを見つけることになりました。いいえ、jquery1.5.1を使用していても問題ありませんでした。

于 2011-08-19T02:47:56.153 に答える
0

12.1以降には、Ignite UIツールキットで提供されるカスタムテンプレートエンジンがあり、jQueryテンプレートを参照する必要がなくなり、jQueryTemplatingオプションは非推奨になりました。これは、APIドキュメントにも記載されています。

于 2012-11-14T11:59:03.200 に答える