4

如果我没有在线定义它们,有没有办法可以将 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>  ...
4

2 回答 2

1

您可能希望实际生成 colModel 值。您可以使用与生成 HTML 相同的东西。IE,

$('#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 值。

于 2009-11-09T02:16:12.963 回答
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();

不幸的是,这个插件没有任何文档,所以它更像是一个猜测而不是有保证的解决方案。我只是认为这可能适用于源代码。

于 2009-08-19T06:01:40.647 回答