我在这里部署了ASP.NET动态数据网站: https://ess.orthman.com/PhoneListWeb/
列可以通过点击列名按字母顺序排列,但我怎么可以设置站点自动按字母顺序排列的是第一列?
我在这里部署了ASP.NET动态数据网站: https://ess.orthman.com/PhoneListWeb/
列可以通过点击列名按字母顺序排列,但我怎么可以设置站点自动按字母顺序排列的是第一列?
你可以有多种选择,这取决于你想要订购的负担的设备。
1.您可以将DB服务器,这将在创建存储过程SELECT * FROM ... ORDER BY ...
和使用,在您的.dbml
2.你提到你是使用LINQ to从的.dbml生成的SQL类,所以我会假设你正在使用LinqDataSource
在.aspx页面。
从您的设计中,您可以在选择配置数据源LinqDataSource
:
然后,你从你的选择的.dbml您的上下文,并在下一个屏幕上,你必须为了通过选项:
3.使用动态数据网站你没有一个具体的表结构的优势,在设计时。 正因为如此,你需要创建一个排序将在运行时发生。 您可以编辑您的DynamicData\PageTemplates\List.aspx.cs
包括以下内容:
protected void Page_Load(object sender, EventArgs e)
{
Title = table.DisplayName;
// Disable various options if the table is readonly
if (table.IsReadOnly)
{
GridView1.Columns[0].Visible = false;
InsertHyperLink.Visible = false;
GridView1.EnablePersistedSelection = false;
}
// Add our sort to the first data column.
if (!Page.IsPostBack)
{
GridView1.Sort(table.Columns[0].Name, SortDirection.Ascending);
}
}
第一,简单的答案将整理您的数据源
通过获取他们后获取数据(订单DB)或LINQ排序对象之前使用顺序...
将数据绑定从DBML你可能有一个LINQ语句将数据绑定到网格或列表之后。
代码类似的东西来一样。
在这下面的示例代码,我刚才说的排序上绑定数据
按公司名称升序排列
var Company = from Company in _c.Company_Name
orderby _c.Company_Name
select Company;
按公司名称降序排列
var Company = from Company in _c.Company_Name
orderby _c.Company_Name descending
select Company;
试试这个希望这将有助于
您可以使用DisplayColumnAttribute来指定要用于排序的列。 有一个简单易用的方式进行排序,并有一个更加复杂和强大的方法。 我都将送给你。
最简单的方法第一,显示出如何排序实体的例子。 在这个例子中从地址表(父表)的POSTALCODE列用于排序的地址。
using System;
using System.Web.DynamicData;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
[DisplayColumn("City", "PostalCode", false)]
public partial class Address
{
}
如果您需要进行排序比较复杂然后尝试从C#位博客这种更强大的方法: 设置初始排序顺序
此链接记录了DisplayColumnAttribute 。
如果你正在使用ASP.NET 4.0
,你可以考虑GridView的AllowSorting = true
有新的排序相关样式属性SortedAscendingHeaderStyle
等。
的例子.ASPX
:
<asp:GridView
ID="gvOffices"
runat="server"
DataSourceID="GridDataSource"
AllowPaging="true"
AllowSorting="true"
PageSize="10"
CssClass="listtable"
AutoGenerateColumns="false"
EnablePersistedSelection="true"
OnSelectedIndexChanged="OnFilterSelectedIndexChanged"
SortedAscendingHeaderStyle-CssClass="sortasc-header"
SortedDescendingHeaderStyle-CssClass="sortdesc-header">
</asp:GridView>
的例子.CSS
:
/*#region Table Header Sort Image */
.sortasc-header a {
background: url(Images/arrowup.gif) right center no-repeat;
}
.sortdesc-header a {
background: url(Images/arrowdown.gif) right center no-repeat;
}
/*#endregion Table Header Sort Image */
AllowSorting
提示在GridView呈现使用其标题行LinkButton
控制,点击后,进行回传,并开始进行分类处理。 和新的特性允许定义依赖当前订单上的列标题的视觉外观。
你可以找到更多信息MSDN 。
编辑:
如果您想仅通过第一列进行排序,你应该设置SortExpression
财产DynamicField
其他列空白的控制。
<asp:DynamicField DataField="ListCity" HeaderText="City" SortExpression="" />