我有一个项目,我需要在其中显示许多网格视图。 gridviews的数量取决于目录所具有的表的数量。
例如:
目录A = 8个表
目录B = 7个表
如果用户单击目录A,则应创建8个网格视图。 我已经完成了以编程方式创建此网格视图,我现在的问题是如何处理每个以编程方式创建的网格视图的排序事件。
这是我创建网格视图的方式:
foreach (XMLClasses.table dirTab in dir.table.ToList())
{
if (dirTab.id == child.tabid)
{
List<XMLClasses.column> columns = new List<XMLClasses.column>();
columns = dirTab.column;
string[] rows = new string[columns.Count];
int x = 0;
foreach (XMLClasses.column col in columns.ToList())
{
dtContent.Columns.Add(col.title);
rows[x] = "b";
x = x + 1;
}
dtContent.Rows.Add(rows);
GridView grdTables = new GridView();
grdTables.AllowSorting = true;
grdTables.DataSource = dtContent;
grdTables.DataBind();
grdTables.Width = Unit.Percentage(100);
grdTables.Sorting+=new GridViewSortEventHandler(grdTables_Sorting);
pnlDirectory.Controls.Add(grdTables);
Literal lt = new Literal();
lt.Text = "<br/>";
pnlDirectory.Controls.Add(lt);
}
}
我有这个库存。我不知道接下来要做什么..
有人有任何想法吗? 任何帮助将不胜感激!
谢谢!
答案 0 :(得分:0)
如果您能够以编程方式创建网格视图并为其设置名称,则可以处理排序。
void SortButton_Click(Object sender, EventArgs e) {
String expression = "";
SortDirection direction;
// Create the sort expression from the values selected
// by the user from the DropDownList controls. Multiple
// columns can be sorted by creating a sort expression
// that contains a comma-separated list of field names.
expression = SortList1.SelectedValue + "," + SortList2.SelectedValue;
// Determine the sort direction. The sort direction
// applies only to the second column sorted.
switch (DirectionList.SelectedValue)
{
case "Ascending":
direction = SortDirection.Ascending;
break;
case "Descending":
direction = SortDirection.Descending;
break;
default:
direction = SortDirection.Ascending;
break;
}
// Use the Sort method to programmatically sort the GridView
// control using the sort expression and direction.
CustomersGridView.Sort(expression, direction);
}
这里发生的是创建了两个属性;表达和方向。
通过使用sortDirection对象设置排序(降序或升序)和字符串''expression'',可用于定位某些列以对其进行排序并将其用作.Sort方法的参数,您所需的效果可以使用。
修改强>
忘记添加代码的来源。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sort(v=vs.110).aspx