我用递规读取了一些与二叉树类似的数据,如,B和C注册在A的下面,D注册在B的下面,E注册在C的下面,依此类推.每一个节点对应一个注册时间,我现在把它们读出来后,放到一个DataTable中,然后在DataGrid里显示出来了,但是现在要以它们的注册时间来为它们排序,请问要怎么做?问题比较急,请各位高手帮帮忙,小妹在此感激不尽!
源代码如下:
*.CS
protected System.Web.UI.WebControls.DataGrid DataGrid1;

    private DataTable dt = new DataTable("dt");
protected System.Web.UI.WebControls.Label Label1;//用来填充DS
private int i = 0;//记录DateTable新建了几列,也就是index private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

if(!IsPostBack)
{

ViewState["sort"] = "checkdate"; UniteFunctions(Session["bh"].ToString());
}

} //为DateTabel加上列
private void MakeNewTable()
{
dt.Columns.Add("bianhao");
dt.Columns.Add("Name");
dt.Columns.Add("ShangJi");//说明它是在哪个节点的下面
} //把要调用到的方法合并成一个方法
private void UniteFunctions(string bianhao)
{
MakeNewTable(); if(bianhao.ToString().Trim() == "8888888888")
{
Response.Write("<script>alert('系统长时间无反应,请退出此页面!');</script>");
getDataBind(bianhao);
}
else
{
getDataBind(bianhao);
} if(dt.Rows.Count <= 0)
{
this.Label1.Text="没有符合条件的记录!";
}
else
{
ViewState["dt"] = dt;
}
DataView dv=new DataView(dt);
dv.Sort=ViewState["sort"].ToString();
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
} //查出此会员及其以下级的相关信息并显示在网格中
private void getDataBind(string strBianhao)
{
string sql = "select bianhao,name,shangji,registerdate from TableA";

if(i<=0)
{
//首次执行,加上本人
sql += " where bianhao='"+ strBianhao +"'";
}
else
{
sql += " where ShangJi='"+ strBianhao +"'";
}


try
{
DataTable dread =DBHelper.ExecuteDataTable(sql);

for(int kk=0;kk<dread.Rows.Count ;kk++)//kk用来记录每次的小行,而i记录加入到dt中的总行
{
dt.Rows.Add(dt.NewRow()); //Response.Write("<script>alert('"+dt.Rows.Count.ToString()+"');</script>");
dt.Rows[i]["bianhao"] =dread.Rows[kk]["bianhao"].ToString();
dt.Rows[i]["Name"] =dread.Rows[kk]["Name"].ToString();
dt.Rows[i]["registerdate"] =dread.Rows[kk]["RegisterDate"].ToString(); dt.Rows[i]["shangji"] =dread.Rows[kk]["anzhi"].ToString(); i++;
getDataBind(dread.Rows[kk]["bianhao"].ToString());
}
}
catch
{
//this.Label1.Text=ex.Message.ToString();
this.Label1.Text="查询失败或不完全!";
return;
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex = e.NewPageIndex;

MakeNewTable();
this.dt = (DataTable)ViewState["dt"];
this.DataGrid1.DataSource = dt;
this.DataGrid1.DataBind();
} private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{  ViewState["sort"] = e.SortExpression.ToString(); this.dt = (DataTable)ViewState["dt"];
this.DataGrid1.DataSource = dt;
this.DataGrid1.DataBind();
}
}