【发布时间】:2016-06-23 03:26:42
【问题描述】:
我有一个使用 ASP.Net 和 C# 开发的网站,它从 Active Directory 获取输入并将数据打印在网站的 HTML 表中。代码如下所示:
void SetupResults(SearchDataItems items)
{
HtmlTable t = new HtmlTable();
HtmlTableRow r = new HtmlTableRow();
HtmlTableCell c = new HtmlTableCell();
c.VAlign = "center";
c.Align = "middle";
c.Width = "200px";
c.InnerHtml = "User";
r.Cells.Add(c);
c = new HtmlTableCell();
c.VAlign = "center";
c.Align = "middle";
c.Width = "180px";
c.InnerHtml = "UserId";
r.Cells.Add(c);
c = new HtmlTableCell();
c.VAlign = "center";
c.Align = "middle";
c.Width = "800px";
c.InnerHtml = "Location";
r.Cells.Add(c);
c = new HtmlTableCell();
c.VAlign = "center";
c.Align = "middle";
c.Width = "280px";
c.InnerHtml = "Date Created";
r.Cells.Add(c);
c = new HtmlTableCell();
r.Cells.Add(c);
r.Style.Add("background-color", "SteelBlue");
r.Style.Add("color", "white");
r.Style.Add("font-size", "medium");
tblItems.Rows.Add(r);
for (int i = 0; i < items.ListItem.Count; i++)
{
r = new HtmlTableRow();
if (i % 2 == 1)
r.BgColor = "#A9D0F5";
c = new HtmlTableCell();
LinkButton lnk = null;
c.VAlign = "Top";
c.Align = "Left";
c.Width = "200px";
c.InnerHtml = items.ListItem[i].Name;
r.Cells.Add(c);
c = new HtmlTableCell();
c.VAlign = "Top";
c.Align = "Left";
c.Width = "180px";
c.InnerHtml = items.ListItem[i].UserID;
r.Cells.Add(c);
c = new HtmlTableCell();
c.VAlign = "Top";
c.Align = "Left";
c.Width = "800px";
c.InnerHtml = StripOUGarbage(items.ListItem[i].OU);
r.Cells.Add(c);
c = new HtmlTableCell();
c.VAlign = "Top";
c.Align = "Left";
c.Width = "280px";
c.InnerHtml = items.ListItem[i].AccountCreateDate.ToString();
r.Cells.Add(c);
c = new HtmlTableCell();
c.VAlign = "Top";
c.Align = "Left";
lnk = new LinkButton();
lnk.Text = "Edit";
lnk.ToolTip = "Edit " + items.ListItem[i].Name;
lnk.ID = i.ToString() + "_" + items.ListItem[i].Name;
lnk.Click += lnk_Click;
lnk.OnClientClick = "ShowProgress();";
c.Controls.Add(lnk);
r.Cells.Add(c);
tblItems.Rows.Add(r);
}
//if (items.ListItem.Count > 0)
//{
// divTable.Controls.Add(t);
//}
}
它运行并返回信息正常,但排序已关闭。它主要按用户创建日期返回(尽管那里似乎也存在一些不一致)。我希望它按用户名的字母顺序返回,有没有办法自动对这些列进行排序,或者能够让用户通过单击列标题对它们进行排序也很好。
任何意见将不胜感激。谢谢
【问题讨论】:
-
这个问题的潜在答案太多了。您是想在构建表格之前对数据进行排序,还是真的想要一个可以单击标题进行排序的表格?
-
您是否有理由不将结果作为获取数据的查询的一部分进行排序?
-
可能需要可配置
标签: c# asp.net html-table