我也遇到这样的问题了!不知道可不可以在DATAGRID中排,dataset排序太麻烦了!

解决方案 »

  1.   

    将排序表达试保存在Session里,分页的时候再从session里得!
      

  2.   

    在数据绑定时指定(在分页程序中)MyDataView.Sort="排序字段或排序表达式";
    MyDataGrid.DataSource=MyDataView;
    MyDataGrid..CurrentPageIndex = e.NewPageIndex;
    MyDataGrid.DataBind();
      

  3.   

    具体:
    string sortField;//全局变量
    //page_load()
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    if (sortField == "") 
    {
    sortField = "OPERATOR_ID";

    Session["Hoten.Boss.CustInfoSys.Web.admin.sortField"]=sortField;//保存
    BindGrid(sortField);
    }
    }
    ===========================================================================
    //绑定
    private void BindGrid(string sortField)//注意参数
    {
    ……
    DataView Source = operatorDS.Tables["OPERATOR"].DefaultView;
    Source.Sort=sortField;
    dgOperatorAdmin.DataSource=Source;
    dgOperatorAdmin.DataBind();
    }
    =============================================================================
    //排序
    private void dgOperatorAdmin_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    {
    sortField=(string)e.SortExpression;
    Session["Hoten.Boss.CustInfoSys.Web.admin.sortField"]=sortField;//保存
    BindGrid(sortField);
    }============================================================================
    //分页
    private void dgOperatorAdmin_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    sortField=(string)Session["Hoten.Boss.CustInfoSys.Web.admin.sortField"];//得出排序表达式 dgOperatorAdmin.CurrentPageIndex=e.NewPageIndex;
    BindGrid(sortField);
    }
      

  4.   

    这个问题我已经解决了,你需要先定义
    static string  sortfield="";
    static int page_no;
    DataSet ds;
    然后
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    if(sortfield=="")
    {
    sortfield="bh";
    }
    page_no=0;
    BindGrid();
    }
    }
    public void BindGrid()
    {
             //从web服务得到返回的记录集
    ds=service1.SelRetds2("GZDT_view","",sortfield.ToString());
    DataView source=new DataView();
    source=ds.Tables[0].DefaultView;
    DataGrid1.DataSource=source;
    DataGrid1.DataKeyField="BH";
    DataGrid1.CurrentPageIndex=page_no;
    DataGrid1.DataBind();
    }
    private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
    {
    sortfield=(string)e.SortExpression;
    BindGrid();
    } private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    page_no=e.NewPageIndex;
    BindGrid();
    }