2009-06-09 9 views
4

JQuery Flexigrid列をインラインで定義しないと並べ替えることができる方法はありますか?jQuery Flexigridで列を並べ替える

私はこの

$("#flex1").flexigrid( 
    { 
     colModel: [ 
     { display: 'Col1', name: 'Col1', sortable: true }, 
     { display: 'Col2', name: 'Col2', sortable: true } 
    }); 

を行うことができます。しかし、私はちょうど好きなグリッドを構築する知っているすなわち:

$("#flex1").flexigrid(); 

とjQueryのスタイルということそしてちょうど出力にテーブルをRepeaterコントロールを使用します。

は、
<table id="flex1" > 
<tr> 
    <th>Col1 /th> 
... 
... 
<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
    <tr> 
     <td><%# Eval("Col1") %></td> ... 
+1

ここではASPの専門家ではありませんが、リピータを使用してflexigridに渡されるオブジェクトを定義することは可能でしょうか? I.リピーターは必要に応じて{display: 'Col1'、名前: 'Col1'、sortable:true}を作成することもできますか? – defines

答えて

0

私は実際にそのプラグインを使用していませんが、私が見ることができるものは変更するための機能です初期化後のオプション

var item = $("#flex1"); 

item.flexOptions({ 
    colModel: [ 
     {display: 'Col1', name: 'Col1', sortable: true}, 
     {display: 'Col2', name: 'Col2', sortable: true} 
    ] 
}); 

// you probably need to reload the grid after updating options 
item.flexReload(); 

残念ながら、このプラグインにはドキュメントがありませんので、保証されたソリューションと推測されます。私はちょうどこれがソースコードから機能するかもしれないと考えました。

1

おそらく実際にはcolModel値を生成したいと思うでしょう。 HTMLを生成するのと同じものを使用することができます。すなわち、

$('#whatnot').flexigrid({ 
    ... 
    colModel: [ 
     <asp:Repeater ID="Repeater1" runat="server"> 
      <ItemTemplate> 
       {display: <%# Eval("Col1") %>, name : <%# Eval("Col1") %>, sortable : true, align: 'left', width: '80'} 

(私はASPのテンプレート言語がどのように動作するかの詳細は知らないが、あなたはその要旨を取得する。)

を別の方法として、あなたがやるように、実際にあなたのテーブルを構築し、通過する可能DOMはjqueryを使用してJavaScriptでcolModal値を構築します。

関連する問題