datagrid做不到吧。自已用 StringBuilder 构建一个表格,加入一些DTHML,javascript一类的东东来实现吧。

解决方案 »

  1.   

    能做到表层的上下移动,需用js和dhtml来实现,如果要更改到数据库,那么只有通过变更数据来进行了
    不过这有什么现实意义吗?
      

  2.   

    或者我现在想这样实现,就是给一个排序字段,然后让用户编缉其实中的值,然后传 回数据库,重新显示一下datagrid,这样可以达到重排序的效果
      

  3.   

    从DataGrid得到需要移动的列号,再根据该列号修改DataTable,移动相应的列,然后再绑定
      

  4.   

    噢,如果我显示时是从sql中的一个视图中读的数据呢,这样就不能回送数据了,那是不是要修改本地dataset中的数据呀,怎么修改呢?
      

  5.   

    给分给hgknight(江雨.net),人家已经回答了怎样做了
      

  6.   

    有人知道吗   sumanden(心头慌,打中张) 你不是很火吗,到处都看到你,你告诉我呀
      

  7.   

    假设你已经把数据读取到了一个DataTable里面,现在你就可以修改DataTable,来达到重新排序的效果。
    其实不必去设置顺序字段,只要交换两条记录就可以了。比如:
    //以下代码是交换第一行和第二行
    for (int i = 0; i < DataTable1.Columns.Count; i++)
    {
      string str = DataTable1.Rows[0][i].ToString();
      DataTable1.Rows[0][i] = DataTable1.Rows[1][i];
      DataTable1.Rows[1][i] = str;
    }
      

  8.   

    private void Page_Load(object sender, System.EventArgs e)
    {
     if(!Page.IsPostBack)
      {
        SqlConnection conn=new SqlConnection(TApp.Global.connstr);
        SqlDataAdapter data=new SqlDataAdapter("select * from aabb",conn);
       data.Fill(dataset);
       Cart=dataset.Tables[0];
       BindGrid();
       }
    } void BindGrid() 
    {
    DataGrid1.DataSource =Cart;
    DataGrid1.DataBind();
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
    string aa=Cart.Columns.Count.ToString();
    for (int i = 0; i < Cart.Columns.Count; i++)
    {
    string str = Cart.Rows[0][i].ToString();
    Cart.Rows[0][i] = Cart.Rows[1][i];
    Cart.Rows[1][i] = str;
    }

    BindGrid() ;

    这样写对吗,Cart.Columns.Count的值根本就是0,这是为什么呀,如果错了,应该怎么写呢
      

  9.   

    我的问题解决了,但还是要谢谢班主的提示,上面的错误是因为table的值没存下来,解决方法static DataSet