在C#/ ASP.NET 3.5中,我有一个DataTable从数据库中提取行。我想将排序过滤器动态地应用于数据表(可以是数据视图),然后遍历排序数据的“行”以将每一行用于某些度量。
我非常希望不要每次都访问数据库来进行自定义排序,但是我不确定如何从原始数据表中获取已排序的数据表。
我确定我会忘记/错过一些简单的事情,但是我不记得该怎么做!
我想在“已排序”列表上执行此操作。它目前正在我的查询的绑定列表上执行此操作。
foreach (DataRow dr in dtTags.Rows)
{
LinkButton lbTag = new LinkButton();
lbTag.CssClass = "UserTagNoHover";
lbTag.ID = "hlUserTag" + dr["UserTagRID"].ToString();
lbTag.Text = dr["Name"].ToString();
//lbTag.Click += new System.EventHandler(this.Tag_OnClick);
lbTag.CommandName = "User_Click";
lbTag.CommandArgument = "hlUserTag" + dr["UserTagRID"].ToString();
lbTag.ToolTip = "Total uses: " + dr["TotalCount"].ToString();
Boolean bAlreadyExists = false;
foreach (LinkButton lbTest in pnlTags.Controls)
{
if (lbTest.ID == lbTag.ID)
{
bAlreadyExists = true;
}
}
if (bAlreadyExists == false)
{
pnlTags.Controls.Add(lbTag);
}
}
Run Code Online (Sandbox Code Playgroud)
DataTable.Select()函数可以完全满足您的需求。它的第二个String参数是一个排序字符串,其语法与SQL的语法相同:[列名] ASC,[其他列名] DESC等。