数据源是动态创建的DataTable,列头也是动态重建的
求能用的排序代码
求能用的排序代码
解决方案 »
- (asp.net)求一个jquery的JSDialog弹出层的连接数据库的那中例子
- datagrid 利用编码实现绑定 怎么设置column为汉字呢
- 使用ajaxpro.dll过一会儿会提示脚本错误
- 邮件发送问题!
- 50分求教一个关于自定义分页的小问题
- 有没有方法,,后台数据库里的字段值变了,,前面的网页显示值跟着变,,可不可以给一个示范?
- DropDownList绑定数组?
- 一般做一个500人左右的聊天室,服务器硬件的最低配置是什么?
- 大家谁有这种控件或类似的啊
- 各位报表高手,小弟遇到难题了
- SqlDataReade和SqlDataAdapter区别
- gridview 列排序、编辑、删除等操作 状态栏老显示JAVASCRIPT:_DOPOSTBACK
static DataTable table = new DataTable();
static DataRow MyRow;
ublic static DataTable GetCategoryTree(WebInfoBase info)
{
DataTable dt = info.List(_DefaultDB, "", "[ID],[Title],[ParentID],[ChildNum],[Depth],[OrderNo]", "&version=", "[ID] ASC");
if (table.Rows.Count > 0)
{
table.Columns.Clear();
table.Rows.Clear();
}
CreateDataTable();
GetTree(dt, "0", 0);
return table;
}
public static void GetTree(DataTable dt, string pid, int blank)
{
string str = " ";
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID = " + pid;
if (blank > 0)
{
string s = "";
if (blank == 1)
{
str = "├";
}
for (int i = 2; i <= blank; i++)
{
s = s + " | "+" "+" - ";
}
str = s + "├";
}
foreach (DataRowView drv in dv)
{
string id = drv["ID"].ToString();
string Title = drv["Title"].ToString();
string OrderNo = drv["OrderNo"].ToString();
string ParentID = drv["ParentID"].ToString();
string Depth = drv["Depth"].ToString();
string ChildNum = drv["ChildNum"].ToString();
MyRow = table.NewRow();
MyRow["ID"] = int.Parse(id);
MyRow["Title"] = str + Title;
MyRow["OrderNo"] = int.Parse(OrderNo);
MyRow["ParentID"] = int.Parse(ParentID);
MyRow["Depth"] = int.Parse(Depth);
MyRow["ChildNum"] = int.Parse(ChildNum);
table.Rows.Add(MyRow);
int n = int.Parse(Depth);
//if (n <= 1)
//{
n++;
//}
GetTree(dt, id, n);
}
}
public static void CreateDataTable()
{
table.Columns.Clear();
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "ID";
table.Columns.Add(column);
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "ParentID";
table.Columns.Add(column);
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Title";
table.Columns.Add(column);
column = new DataColumn();
column.DataType = Type.GetType("System.Int32");
column.ColumnName = "ChildNum";
table.Columns.Add(column);
column = new DataColumn();
column.DataType = Type.GetType("System.Int32");
column.ColumnName = "Depth";
table.Columns.Add(column);
column = new DataColumn();
column.DataType = Type.GetType("System.Int32");
column.ColumnName = "OrderNo";
table.Columns.Add(column);
//table.Columns.Clear();
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ws_hgo/archive/2009/01/21/3846843.aspx
你要求多得话,换其他控件不就好了吗??
如:Infragistics系列的!!我用着还不错,功能全,也美观,就是速度有点慢!!
呵呵~~不过也没关系
{
string sortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression, " DESC");
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, " ASC");
}
}
this.GridView1.Attributes.Add("SortExpression", "id");
this.GridView1.Attributes.Add("SortDirection", "ASC");
this.BindGridView();
}
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression.ToString();
string sortDirection = "ASC";
if (sortExpression == this.GridView1.Attributes["SortExpression"])
{
sortDirection = (this.GridView1.Attributes["SortDirection"].ToString() == sortDirection ? "DESC" : "ASC");
}
this.GridView1.Attributes["SortExpression"] = sortExpression;
this.GridView1.Attributes["SortDirection"] = sortDirection;
this.BindGridView();
}
private void BindGridView()
{
string sortExpression = this.GridView1.Attributes["SortExpression"];
string sortDirection = this.GridView1.Attributes["SortDirection"]; DataTable dtBind = this.getDB(); if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
{
dtBind.DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
}
this.GridView1.DataSource = dtBind;
this.GridView1.DataBind();
} private DataTable getDB()
{
DataTable dt = new DataTable();return dt;
}
}
参考
第0列 文本 无需排序
第1列 价格 例如 150.00 120.00 130.00 升降序排序
第2列 文本 无需排序
第3列 整数 例如 1500 300 100 5000 升降排序我今天刚开始研究.net,所以希望大家能够详细一点,谢谢各位老师了。