如果我没有在线定义它们,我有没有办法将JQuery Flexigrid列标记为可排序?
即。我知道我可以做到这一点
$("#flex1").flexigrid(
{
colModel: [
{ display: 'Col1', name: 'Col1', sortable: true },
{ display: 'Col2', name: 'Col2', sortable: true }
});
但我构建网格就像:
$("#flex1").flexigrid();
然后只使用转发器控件输出JQuery将样式化的表:
<table id="flex1" >
<tr>
<th>Col1 /th>
...
...
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td><%# Eval("Col1") %></td> ...
答案 0 :(得分: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的模板语言如何运作的细节,但你得到了要点。)
或者,你可以像你一样构建你的表,然后使用jquery遍历DOM以在Javascript中构建你的colModal值。
答案 1 :(得分: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();
不幸的是,这个插件没有任何文档,所以它更像是一个有保障的解决方案。我只是认为这可能源于源代码。