Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET动态数据站点:强制按字母顺序排列第一列_C#_Asp.net_Asp.net Dynamic Data - Fatal编程技术网

C# ASP.NET动态数据站点:强制按字母顺序排列第一列

C# ASP.NET动态数据站点:强制按字母顺序排列第一列,c#,asp.net,asp.net-dynamic-data,C#,Asp.net,Asp.net Dynamic Data,我已在此处部署了ASP.NET动态数据站点: 通过单击列名可以按字母顺序排列列,但是如何设置站点以自动按字母顺序排列第一列?首先,简单的答案是对数据源进行排序 在获取数据之前使用order by(form DB)或在获取对象之后使用linq sort对象…首先,简单的答案是对数据源进行排序 在获取数据之前使用order by(form DB)或在获取对象之后使用linq sort objects…您有许多可用的选项,具体取决于您希望哪台机器承担订购负担 1。您可以在DB服务器上创建一个存储过程,

我已在此处部署了ASP.NET动态数据站点:


通过单击列名可以按字母顺序排列列,但是如何设置站点以自动按字母顺序排列第一列?

首先,简单的答案是对数据源进行排序

在获取数据之前使用order by(form DB)或在获取对象之后使用linq sort对象…

首先,简单的答案是对数据源进行排序

在获取数据之前使用order by(form DB)或在获取对象之后使用linq sort objects…

您有许多可用的选项,具体取决于您希望哪台机器承担订购负担

1。您可以在DB服务器上创建一个存储过程,该存储过程将
从。。。按…订购。
并在.dbml中使用它

2。您提到您使用的是从.dbml生成的Linq to SQL类,因此我假设您在.aspx页面中使用的是
LinqDataSource

在设计器中,您可以在
LinqDataSource
上选择“配置数据源”:

然后从.dbml中选择上下文,在下一个屏幕上,您可以选择按以下方式排序:

3.使用在设计时没有特定表结构的优势。因此,您需要创建一个将在运行时发生的排序。您可以编辑
dynamicata\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);
    }
}

您有很多选择,这取决于您希望订购哪台机器

1。您可以在DB服务器上创建一个存储过程,该存储过程将
从。。。按…订购。
并在.dbml中使用它

2。您提到您使用的是从.dbml生成的Linq to SQL类,因此我假设您在.aspx页面中使用的是
LinqDataSource

在设计器中,您可以在
LinqDataSource
上选择“配置数据源”:

然后从.dbml中选择上下文,在下一个屏幕上,您可以选择按以下方式排序:

3.使用在设计时没有特定表结构的优势。因此,您需要创建一个将在运行时发生的排序。您可以编辑
dynamicata\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);
    }
}

从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;

尝试此方法,希望在绑定来自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;

试试这个,希望它会有所帮助。

您可以使用displaycolumn属性指定应该用于排序的列。有一种简单易行的排序方法,还有一种更复杂、更强大的方法。我给你们两个

首先是简单的方法,展示了如何对实体进行排序的示例。在本例中,地址表(父表)中的PostalCode列用于对地址进行排序

using System;
using System.Web.DynamicData;
using System.ComponentModel.DataAnnotations;
using System.Globalization;

[DisplayColumn("City", "PostalCode", false)]
public partial class Address
{

}
如果您的排序需求更为复杂,那么可以在C#Bits博客上尝试这种更为稳健的方法:


此链接记录了。您可以使用DisplayColumn属性指定应用于排序的列。有一种简单易行的排序方法,还有一种更复杂、更强大的方法。我给你们两个

首先是简单的方法,展示了如何对实体进行排序的示例。在本例中,地址表(父表)中的PostalCode列用于对地址进行排序

using System;
using System.Web.DynamicData;
using System.ComponentModel.DataAnnotations;
using System.Globalization;

[DisplayColumn("City", "PostalCode", false)]
public partial class Address
{

}
如果您的排序需求更为复杂,那么可以在C#Bits博客上尝试这种更为稳健的方法:


<链接> .< /p> < p>如果您使用的是<代码> ASP.NET 4 < /代码>,您可以考虑GRIDVIEW的代码> AlxDeals= Trime< /Cord>新排序相关的样式属性<代码> SoordAdvEngEngHealdSype 等。p>
.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>
AllowSorting
提示GridView使用
LinkButton
控件呈现其标题行,单击该控件时,会导致回发并启动排序过程。新属性允许根据当前顺序定义列标题的视觉外观

有关更多信息,请访问

编辑:

如果只想按第一列排序,则应将其他列的
DynamicField
控件的
SortExpression
属性设置为空

<asp:DynamicField DataField="ListCity" HeaderText="City" SortExpression="" />


< /代码> < p>如果您使用的是<代码> ASP.NET 4 < /C> >您可以考虑GRIDVIEW的代码> AlxDeals= Trime< /Cord>新排序相关的样式属性<代码> SoordAdvutnEnguleStudio< /COD>等。p>
.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>
AllowSorting
提示GridView使用
LinkButton
控件呈现其标题行,单击该控件时,会导致回发并启动排序过程。新属性允许根据当前顺序定义列标题的视觉外观

有关更多信息,请访问

编辑:

如果只想按第一列排序,则应将其他列的
DynamicField
控件的
SortExpression
属性设置为空

<asp:DynamicField DataField="ListCity" HeaderText="City" SortExpression="" />


我还没有尝试过任何东西。我甚至不知道从哪里开始。我想它是在沙漠的某个地方