使用jQuery Flexigrid对列进行排序

时间:2009-06-09 00:52:27

标签: asp.net javascript jquery flexigrid

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

2 个答案:

答案 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();

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