现在我用的datagrid所有的列都是用模板列实现的(textbox),里面的数据都显示在各个textbox里面,现在要对各个列点排序,对各个文本框里面值排序,如何实现这个功能?

解决方案 »

  1.   

    模板列的排序方式与非模板列的排序方式没有两样,都是通过页面提交,重新获取数据,通过SQL语句的本身排序进行实现.
    你可通过VIEWSTATE存储上一个页面排序的字段及方式,然后在本次页面提交后重新判断
    sql = "select * from table order by 字段 排序方式"
      

  2.   

    首先设置排序字段:<asp:TemplateColumn SortExpression=field >  其中field是要排序的字段。
    然后在DataGrid中添加DataGrid1_SortCommand()事件保存要排序的字段:
    Session.Add("sorting",e.SortExpression); 
    绑定中的SQL查询语句 
    SELECT * FROM tableName ORDER BY "+Session["sorting"].ToString;