C# 网格视图中的列值未按-C顺序显示#

C# 网格视图中的列值未按-C顺序显示#,c#,datatable,C#,Datatable,我在这段代码中遇到了一些问题,我将行从一个网格视图传递到另一个网格视图,但是网格视图没有按顺序显示数据 System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data;

我在这段代码中遇到了一些问题,我将行从一个网格视图传递到另一个网格视图,但是网格视图没有按顺序显示数据

    System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    using System.Data;

    public partial class PuntoVenta : Page
    {

     DataTable dtband = new DataTable();        

        protected void Page_Load(object sender, EventArgs e)
        {

      if (!IsPostBack)
     {

            DataTable dtbind = new DataTable();
            dtbind.Columns.Add("Id");
            dtbind.Columns.Add("Qnt");
            dtbind.Columns.Add("Unit");
            dtbind.Columns.Add("Name");
            dtbind.Columns.Add("Rel");
            dtbind.Columns.Add("Price");
            dtbind.Columns.Add("Class");
            Session["ss"] = dtbind;
    }
    }

    protected void GridViewA_SelectedIndexChanged(object sender, EventArgs e)       {

      dtband = (DataTable)Session["ss"];        

      DataRow dataRow;
      dataRow = dtband.NewRow();
      int i2 = 0;
      for (int i = 0; i < dataRow.Table.Columns.Count; i++)
        {
        dataRow[i] = GridViewA.SelectedRow.Cells[i2].Text;

        i2++;
          }
 dtband.Rows.Add(dataRow);

                GridViewB.DataSource = dtband;
                GridViewB.DataBind();
}
}  
System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用System.Data.SqlClient;
使用系统数据;
公共部分类PuntoVenta:第页
{
DataTable dtband=新DataTable();
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
DataTable dtbind=新DataTable();
dtbind.Columns.Add(“Id”);
dtbind.Columns.Add(“Qnt”);
dtbind.Columns.Add(“单位”);
dtbind.Columns.Add(“名称”);
dtbind.Columns.Add(“Rel”);
dtbind.Columns.Add(“价格”);
dtbind.Columns.Add(“类”);
会话[“ss”]=dtbind;
}
}
受保护的void gridview a\u SelectedIndexChanged(对象发送方,事件参数e){
dtband=(数据表)会话[“ss”];
数据行数据行;
dataRow=dtband.NewRow();
int i2=0;
for(int i=0;i
当我运行代码时,GridViewB被填充,但是它的第一列是空的,而且,应该显示在第一列中的值将显示在第二列中


您可以设置
Gridview列的
DiplayIndex
属性

//Here 1 is index of desired column
datagridview1.Columns["ColumnName"].DisplayIndex = 1;
在应用程序中添加以下代码

    dtbind.Columns.Add("Id");
    dtbind.Columns["Id"].DisplayIndex = 0;
    dtbind.Columns.Add("Qnt");
    dtbind.Columns["Qnt"].DisplayIndex = 1;
    //Like onwards

有关DisplayIndex属性的更多信息,请参阅

dataRow[i]的变量i在哪里声明和更改?试试这个Hi Lei,我已经更新了代码请花几分钟时间正确格式化代码。此外,您已将编辑作为新答案发布。请单击问题上的“编辑”按钮以更改post@richardkb请将Vijay Kumbhoje的帖子标记为已接受的答案。。这对您和其他人也会很有帮助,当我把它添加到我的come中时,我会得到以下错误:编译器错误消息:CS1061:'System.Data.DataColumn'不包含'DisplayIndex'的定义,并且找不到接受'System.Data.DataColumn'类型的第一个参数的扩展方法'DisplayIndex'(您是否缺少使用指令或程序集参考?)如果它有助于您,请将其标记为回答谢谢,并保持良好:)@DSLR yawarshich kar mhanav