1

ここにASP.NET動的データサイトを展開しました:https ://ess.orthman.com/PhoneListWeb/

列名をクリックすると列をアルファベット順に並べ替えることができますが、最初の列を自動的にアルファベット順に並べるようにサイトを設定するにはどうすればよいですか?

4

5 に答える 5

5

注文の負担が必要なマシンに応じて、いくつかのオプションを利用できます。

1. DBサーバー上にストアドプロシージャを作成し、それをSELECT * FROM ... ORDER BY ....dbmlで使用できます。

2..dbmlから生成されたLinqtoSQLクラスを使用しているとおっしゃっていたのでLinqDataSource、.aspxページで使用していることを前提としています。

デザイナ内から、次のデータソースの構成を選択できますLinqDataSource

LinqDataSourceを構成します

次に、.dbmlからコンテキストを選択すると、次の画面で[並べ替え]を選択できます。

LinqDataSourceの[注文]オプション

3.動的データWebサイトを使用すると、設計時に特定のテーブル構造の利点がありません。このため、実行時に発生するソートを作成する必要があります。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);
    }
}
于 2013-03-19T20:01:55.387 に答える
2

最初の簡単な答えは、データ
をフェッチする前に順序を使用してデータソースを並べ替える(フォームDB)か、データをフェッチした後にオブジェクトを並べ替えるlinqです...

于 2013-03-19T19:26:51.580 に答える
1

dbmlからデータをバインドした後データをグリッドまたはリストにバインドするためのlinqステートメントがある場合があります。

Sameに似たものをコーディングします。

この以下のサンプルコードでは、データのバインドに並べ替えを追加しました

会社名の昇順で注文

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;

これを試してみてくださいそれが役立つことを願っています

于 2013-03-26T13:03:56.830 に答える
1

DisplayColumnAttributeを使用して、並べ替えに使用する列を指定できます。並べ替えにはシンプルで簡単な方法があり、より複雑で強力なアプローチがあります。両方あげます。

最初に簡単な方法で、エンティティを並べ替える方法の例を示します。この例では、アドレステーブル(親テーブル)のPostalCode列を使用してアドレスを並べ替えています。

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

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

}

並べ替えのニーズがより複雑な場合は、C#Bitsブログのこのより堅牢なアプローチを試してください:最初の並べ替え順序の設定

このリンクは、DisplayColumnAttributeを文書化します。

于 2013-03-26T18:54:26.553 に答える
1

使用している場合は、新しい並べ替え関連のスタイルプロパティなどを備えたASP.NET 4.0GridViewを検討できます。AllowSorting = trueSortedAscendingHeaderStyle

.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 */

AllowSortingLinkButtonクリックするとポストバックを引き起こし、並べ替えプロセスを開始するコントロールを使用して、GridViewにヘッダー行をレンダリングするように求めます。また、新しいプロパティを使用すると、現在の順序に応じて列ヘッダーの外観を定義できます。

詳細については、MSDNを参照してください。

編集:

最初の列のみで並べ替える場合は、他の列SortExpressionの制御のプロパティDynamicFieldを空白に設定する必要があります。

<asp:DynamicField DataField="ListCity" HeaderText="City" SortExpression="" />
于 2013-04-19T13:56:05.730 に答える