2011-03-05 17 views
0

にプログラムで変更されたときにこれが私のjqgridで失う - gridCompleteイベントに$("#list1") それがロード、つまりは、私が列ヘッダーテキストの名前を変更する必要があります。JqGridは - multipleSearchをソートし、実行する機能列ヘッダのテキストがgridComplete

ヘッダーテキストは、この形式であるオリジナルコラム - Colomn1、列2 ... gridCompleteで 、私はこのようなこれらのヘッダーテキストを変更します。

$("#list1_Column" + someNumber).text(someText); 

しかしこれを行う上で、私が列をソートする能力を失います。列ヘッダーはもはやクリック可能ではなく、したがってこのカスタムプログラム編集後にグリッドをソートすることはできません。 gridCompleteに、私はグリッドの列ヘッダに従って選択リスト内のテキスト値を変更すると、

: - 私は、検索ドロップダウンリストにテキストを変更しようとすると、

同様の事が(真multipleSearchを使用してモーダルを検索)起こりますこのように -

var select = $('#grid_wrapper #fbox_list1 .ui-widget-content .sf .fields select'); 
$('#grid_wrapper #fbox_list1 .ui-widget-content .sf .fields select option').remove(); 

$.each(data, function (i, item) { 
    select.append('<option value="Column' + item.id + '">' + item.ColumnName + '</option>') 
}); 

...私は複数の検索を実行できなくなります。つまり、検索モードの+と - ボタンが消えます。

この2つの問題を回避するにはどうすればよいですか?ロード時に列ヘッダーと検索リストのテキスト値を変更した後、複数の検索をソートして実行する保持機能。

ご案内しています。

答えて

2

列ヘッダー<th>要素には、2つの子要素があります.1つは<span>、列ヘッダーはテキスト、もう1つは最も時間が隠れているソートアイコンです。手動でテキストを変更したい場合はあなたが行う場合は、別のセレクタ

$("#list1_Column" + someNumber+ " > span").text(someText); 

を使用する必要がありますので、あなたがページ上のテキストを変更しますが、colModel(もしcolNamesまたはのテキストを変更しませんcolNamesの代わりにlabelプロパティを使用します)。このテキストは、たとえば、Multisearchダイアログを作成するために使用されます。あなたはsetColProp方法のに対しcolModelに変更を加えるか、を基準に(包括colNamescolModelのようなオブジェクトである)jqGridのいずれかの内部パラメータを取得し、その後、必要な変更を行うためにgetGridParamを使用することができます。

のような問題点を解決するために、私の意見では最良の方法は、列ヘッダのテキストを変更するsetLabelメソッドを使用することです:

$("#list1").jqGrid('setLabel','ColumnName','My new Name'); 

これは、両方の問題を解決します。

+0

データベースの列名を変更してトリガー( "reloadGrid")を実行すると、グリッドの列ヘッダーは変更されますが、検索ドロップダウンリストのラベルは変更されません。これを回避する方法はありますか? – Sameet

+0

@SaM:あなたのシナリオをより詳細に記述する必要があります。一般に、 'colModel'のカラムの' index'プロパティは 'sidx'としてサーバに送られます。 – Oleg

関連する問題