Asp.net 使用jQuery Flexigrid对列进行排序

Asp.net 使用jQuery Flexigrid对列进行排序,asp.net,javascript,jquery,flexigrid,Asp.net,Javascript,Jquery,Flexigrid,如果不在线定义JQuery Flexigrid列,有没有办法将它们标记为可排序的 i、 我知道我能做到 $("#flex1").flexigrid( { colModel: [ { display: 'Col1', name: 'Col1', sortable: true }, { display: 'Col2', name: 'Col2', sortable: true } }); 但我构建网格的方式如下:

如果不在线定义JQuery Flexigrid列,有没有办法将它们标记为可排序的

i、 我知道我能做到

    $("#flex1").flexigrid(  
    {  
        colModel: [
        { display: 'Col1', name: 'Col1', sortable: true  },
        { display: 'Col2', name: 'Col2', sortable: true  }
    });
但我构建网格的方式如下:

$("#flex1").flexigrid();
然后使用repeater控件输出JQuery将设置样式的表:

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

Col1/th>
...  
...  
...

我还没有真正使用过该插件,但从我看到的情况来看,有一个在初始化后更改选项的功能

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

不幸的是,这个插件没有任何文档,所以它更多的是猜测,而不是保证的解决方案。我只是觉得这可能是源代码的结果。

您可能需要实际生成colModel值。您可以使用与生成HTML相同的东西。即

$('#whatnot').flexigrid({
    ...
    colModel: [
        <asp:Repeater ID="Repeater1" runat="server">  
            <ItemTemplate>
                {display: <%# Eval("Col1") %>, name : <%# Eval("Col1") %>, sortable : true, align: 'left',  width: '80'}
$(“#whatnot”).flexigrid({
...
colModel:[
{display:,name:,sortable:true,align:'left',width:'80'}
(我不知道ASP的模板语言是如何工作的,但你知道要点。)


或者,您可以像构建表一样构建表,然后使用jquery遍历DOM,以Javascript构建colModal值。

这里不是ASP专家,但是否可以使用中继器定义传递到flexigrid的对象?即,中继器是否也可以构建{根据需要显示:'Col1',名称:'Col1',可排序:true}?