我已经在这里部署了ASP.NET动态数据网站:https://ess.orthman.com/PhoneListWeb/ASP.NET动态数据网站:强制首列按字母顺序排列被
列可以通过点击列名按字母顺序排列,但如何设置该网站自动按字母排列第一列?
我已经在这里部署了ASP.NET动态数据网站:https://ess.orthman.com/PhoneListWeb/ASP.NET动态数据网站:强制首列按字母顺序排列被
列可以通过点击列名按字母顺序排列,但如何设置该网站自动按字母排列第一列?
你有许多可供选择,这取决于你想要订购哪台机器。
您可以将DB服务器,将SELECT * FROM ... ORDER BY ...
上创建一个存储过程和使用,在您的.dbml
2.你提到你是使用LINQ to从的.dbml生成的SQL类,所以我假设你在.aspx页面中使用LinqDataSource
。
从你的设计师中,您可以在LinqDataSource
选择配置数据源:
然后你从你的.dbml选择您的上下文,并在下一个屏幕上,你必须为了通过选项:
使用Dynamic Data Web Site你没有的优势设计时的特定表格结构。正因为如此,您需要创建一个将在运行时发生的排序。您可以编辑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);
}
}
当你说,“从你的设计师中,你可以选择在你的LinqDataSource上配置数据源:”项目中的哪个页面是? – CryptoJones 2013-03-19 20:21:28
如果你需要我可以给你一个压缩的项目文件。 – CryptoJones 2013-03-19 20:25:53
@CryptoJones在阅读和创建测试项目后,我添加了另一个选项。看起来你可以选择选项1或3,而选项2并不适用于你的情况。 – 2013-03-19 20:34:31
首先,简单的答案将通过获取它们之后获取数据(订单DB)或LINQ排序对象之前被排序数据源
使用顺序...
好的,你是如何做到这一点的? – CryptoJones 2013-03-19 19:35:51
您使用的是数据库吗?如果是的话,你使用ADO.Net或Eetity framwork或Hibernate? – 2013-03-19 20:37:17
将数据绑定从DBML 后,你可能有一个LINQ语句将数据绑定到一个图标或列表。
代码类似于相同的东西。
在这下面的示例代码,我刚才说对公司名称倒序
var Company = from Company in _c.Company_Name
orderby _c.Company_Name descending
select Company;
试试这个希望通过公司姓名升序
var Company = from Company in _c.Company_Name
orderby _c.Company_Name
select Company;
秩序结合数据
顺序排序它会帮助
您可以使用DisplayColumnAttribu te指定应该用于分类的列。有一种简单易行的排序方法,有一种更复杂和更强大的方法。我会给你们两个。
首先简单的方法,显示如何对实体进行排序的示例。在这个例子中,地址表(父表)的PostalCode列用于排序地址。
using System;
using System.Web.DynamicData;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
[DisplayColumn("City", "PostalCode", false)]
public partial class Address
{
}
如果您需要进行排序比较复杂然后尝试从C#位博客这种更强大的方法:Setting the initial sort order
此链接记录了DisplayColumnAttribute。
如果您正在使用ASP.NET 4.0
你可以考虑GridView的AllowSorting = true
有新的排序相关样式属性SortedAscendingHeaderStyle
等。
.ASPX
示例:
实施例的.CSS
<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>
:
/*#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。
编辑:
如果您想仅通过第一列进行排序,你应该设置DynamicField
控制的其他列空白的SortExpression
财产。
<asp:DynamicField DataField="ListCity" HeaderText="City" SortExpression="" />
我还没有尝试过任何东西。我甚至不知道从哪里开始。我假设它位于列表,详细信息,编辑或插入模板上的动态数据文件夹中。但我找不到任何看起来很接近的东西。 – CryptoJones 2013-03-13 18:25:41
第一列的数据如何拉入? – Melanie 2013-03-19 19:20:01
Linq to SQL类.dbml文件 – CryptoJones 2013-03-19 19:29:44