不是同一个东西,无法转换。
排序GridView自动就支持,把AllowSorting属性设置为true就可以了。

解决方案 »

  1.   

    不明白楼主说的是什么意思啊!
    楼主的意思是不是想把gridview中的数据转成dataset呀?
    那楼主的gridview中的数据怎样得来的呢?
    如果楼主能得来装入gridview中的数据的话,那么怎么会没有dataset呢?
    应该很简单的啊!
      

  2.   

    楼上:设置那个属性后,Header上点哪个字段就按哪个字段排序,不用任何编码。GridView和1.1中的DataGrid不同,可以通过SqlDataSource直接绑定数据库,不用dataset
      

  3.   

    不好意思,可能说得不太清楚!
    我的意思是说:我是想用GridView1_Sorting进行编写代码排序!
    但我用的数据源不是sqldatasource,是手动指定的数据源DataSet! protected void Button2_Click(object sender, EventArgs e)
        {
            dataset ds=conn.enter_day();
            gridview1.datasource=ds.table[0].defaultview;
            gridview1.databind();        
        } protected void Button3_Click(object sender, EventArgs e)
        {
            dataset ds=conn.enter_yy_dd();
            gridview1.datasource=ds.table[0].defaultview;
            gridview1.databind();        
        }
    .........
    protected void Button4_Click(object sender, EventArgs e)
        {
            dataset ds=conn.enter_monthdisp();
            gridview1.datasource=ds.table[0].defaultview;
            gridview1.databind();        
        }
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {
            DataSet ds = conn.enter_monthdisp();//控制button4_click排序        //如果只有一个查询数据源,这里可以再执行一次,但是有很多查询,就很麻烦,如上面button2_click,button3_click ……
            DataView dv=ds.Tables[0].DefaultView;
            dv.Sort = "en_dh DESC";
            GridView1.DataSource    }
    如果数据源只有一个,上面方法就可以实现,但是我的页面上有很多不同种类的查询(如button2_click,button3_click),每一个都有返回的数据源,每一次再点击排序时也不知道要绑定哪个数据源,所以我才想能不能直接对gridview1.datasource中的数据导出来排序,再绑定给gridview1!
      

  4.   

    数据是导不出来的,传送到客户端后,服务器端只保存了DataKeys中的数据,其它一概丢失
      

  5.   

    我下面没有直接回答你的问题,只是建议:1. 你自己“拥有”ds.table[0],你的代码知道在对象中从ds.table[0]去绑定数据给GridView,那么同一对象中的其它代码为什么就不知道去取ds.table[0]而偏要通过GridView呢?每一次都绕一下,说句不好听的,是“脱裤子放屁”了。2. 逻辑上如果有纠缠不清的东西,那么你应该把它使用组件方式大事化小,明白职责所在。例如你应该将这个数据展现程序写成用户控件,然后对控件接口读写dataset数据,控件中是否使用GridView完全是将来实现和升级这个用户控件的人自己的事,而写外部调用程序的人应该根据数据接口来读写数据,不应该想当然地非要去纠缠于内部是否是通过GridView控件来实现的。这个工程接口化、分清职责的基本思路要比你学很多编程小技巧重要多了。
      

  6.   

    我给你写明确一点,例如你可以写:dataset ds=null;protected void Button2_Click(object sender, EventArgs e)
        {
            ds=conn.enter_day();
            gridview1.datasource=ds.table[0].defaultview;
            gridview1.databind();        
        } protected void Button3_Click(object sender, EventArgs e)
        {
            ds=conn.enter_yy_dd();
            gridview1.datasource=ds.table[0].defaultview;
            gridview1.databind();        
        }
    .........
    protected void Button4_Click(object sender, EventArgs e)
        {
            ds=conn.enter_monthdisp();
            gridview1.datasource=ds.table[0].defaultview;
            gridview1.databind();        
        }
      

  7.   

    而对于将数据展现程序设计为用户控件的程序例子代码是:protected void Button2_Click(object sender, EventArgs e)
        {
            dataset ds=conn.enter_day();
            MyTestControl.data=ds.table[0].defaultview;
        } protected void Button3_Click(object sender, EventArgs e)
        {
            dataset ds=conn.enter_yy_dd();
            MyTestControl.data=ds.table[0].defaultview;
        }
    .........
    protected void Button4_Click(object sender, EventArgs e)
        {
            dataset ds=conn.enter_monthdisp();
            MyTestControl.data=ds.table[0].defaultview;
        }这里,用户控件实例 MyTestControl的data属性可以写或者读数据,而逻辑上成文自明地、根本没有纠缠于是否是使用GridView来实现ui。
      

  8.   

    其实对你这个问题的解决思路是一样的:你纠缠于GridView控件,并不能对控件运用有什么长进,反倒是降低了对业务数据直接进行处理的能力。