Javascript N行应该放在实际jqGrid的最后一列?所以我可以在演示文稿中移动每一列的位置,而不必考虑它在发送给客户端的JSON中的排列方式?我想这就是jsonmap所做的,但我不确定。我只是在另一篇文章中注意到你提到了“remapColumns”函数,也许我可以试试

Javascript N行应该放在实际jqGrid的最后一列?所以我可以在演示文稿中移动每一列的位置,而不必考虑它在发送给客户端的JSON中的排列方式?我想这就是jsonmap所做的,但我不确定。我只是在另一篇文章中注意到你提到了“remapColumns”函数,也许我可以试试,javascript,asp.net,wcf,json,jqgrid,Javascript,Asp.net,Wcf,Json,Jqgrid,N行应该放在实际jqGrid的最后一列?所以我可以在演示文稿中移动每一列的位置,而不必考虑它在发送给客户端的JSON中的排列方式?我想这就是jsonmap所做的,但我不确定。我只是在另一篇文章中注意到你提到了“remapColumns”函数,也许我可以试试。@Sean Thoman:你认为在哪里为客户端提供列映射的信息?我无法想象为什么需要它。也许你描述了一个你有过的例子?在标准情况下,jqGrid调用一个服务器方法,例如,GetProducts。网格列定义和GetProducts在单元格列表中


N行应该放在实际jqGrid的最后一列?所以我可以在演示文稿中移动每一列的位置,而不必考虑它在发送给客户端的JSON中的排列方式?我想这就是jsonmap所做的,但我不确定。我只是在另一篇文章中注意到你提到了“remapColumns”函数,也许我可以试试。@Sean Thoman:你认为在哪里为客户端提供列映射的信息?我无法想象为什么需要它。也许你描述了一个你有过的例子?在标准情况下,jqGrid调用一个服务器方法,例如,
GetProducts
。网格列定义和
GetProducts
单元格
列表中的列顺序相同。因此不需要映射。可能您遇到了上述情况?我只希望jqGrid中的列顺序独立于JSON中的列顺序。这意味着我可以改变jqGrid的外观(重新排列列),而不必修改数据访问层(我的sql查询和/或wcf服务)。如果可能的话,我不希望来自WCF服务的列的排列决定网格中列的排列。@Sean:对不起,但这不是一个示例。如果有误解,就应该用一个例子来说明。目前我看不出你写的有任何意义。客户端部分(jqGrid)的调用服务器应该使用一个双方都使用的契约。如果我们使用相同的字母,但我会写德语单词,你会像读英语单词一样读这个单词,你什么也听不懂。如果服务器以固定顺序发送数据,客户端必须知道列顺序并使用它。
[DataContract]
public class JQGridContract
{
    [DataContract]
    public class Row
    {
        [DataMember]
        public int id { get; set; }

        [DataMember]
        public List<string> cell { get; set; }

        public Row()
        {
            cell = new List<string>();
        }
    }

    [DataMember]
    public int page { get; set; }

    [DataMember]
    public int total { get; set; }

    [DataMember]
    public int records { get; set; }

    [DataMember]
    public List<Row> rows { get; set; }

    public JQGridContract()
    {
        rows = new List<Row>();
    }
}  
            return new JQGridColumnCollection()
            {
                new JQGridColumn()
                {
                    DataField = "ID",     // maps to the DataTable
                    DataType = typeof(int),
                    HeaderText = "ID",
                    PrimaryKey = true,
                },
                new JQGridColumn()
                {
                    DataField = "Name",  
                    DataType = typeof(string),
                    HeaderText = "Name"
                },
                new JQGridColumn()
                {
                    DataField = "Birthdate",  
                    DataType = typeof(DateTime),
                    HeaderText = "Birth Date" 
                }                
            };
DataTable table = GetDataTable(" SELECT [Birthdate], [ID], [Name] From PersonTable ");