固定行を除いたソート

SortColumnCommandイベントの引数SortFrozenRowsをFalseにすることで、 自動ソート時に固定行を除いてソートすることができます。

このサンプルでは、ソートを行いたい列のヘッダをダブルクリックしてください。 固定行である1行目と2行目を除いてソートされます。
 社員ID部署氏名性別生年月日年齢出身地血液型
11001人事部藤村 博道1973/03/2237香川県O
21002総務部田所 憲司1975/05/1335群馬県O
31003人事部岡部 瑞穂1955/07/1654鹿児島県A
41004営業部北野 進一1966/08/2143高知県O
51005営業部有馬 丈人1986/11/2123沖縄県O
61006経理部高島 海斗1951/12/0358千葉県B
71007総務部佐々木 直子1971/09/1438愛知県B
81008営業部石沢 幸吉1969/06/2140徳島県A
91009営業部丸田 孝治1957/12/0952鹿児島県B
101010総務部山本 信子1981/04/1029和歌山県A
111011人事部小嶋 博美1968/12/0641島根県AB
121012営業部高村 義治1980/12/1929熊本県O
131013経理部星野 舞1964/07/1145三重県O
141014営業部津村 文男1959/11/1350鳥取県A
151015人事部和泉 丈夫1969/11/2340愛知県O
161016人事部前原 章二1983/05/1427秋田県O
171017人事部飯田 靖1966/09/2843神奈川県AB
181018経理部北 眞子1950/06/1759沖縄県O
191019営業部福沢 菜々子1963/07/1146高知県A
201020営業部坂上 日菜1952/11/0857香川県A
211021営業部篠田 蘭1973/06/1137福岡県A
221022総務部岩井 賢1973/01/2637奈良県A
231023経理部安部 心音1961/03/0649秋田県B
241024経理部松木 清吾1965/09/1444奈良県O
251025総務部武内 敬1976/12/0433島根県AB
261026人事部荒木 陽花1954/02/0456熊本県O
271027営業部川崎 桜子1981/03/2329大分県A
281028営業部赤羽 清子1987/05/1523青森県A
291029営業部黒澤 孝吉1954/12/1755山形県A
301030営業部川嶋 俊男1979/09/1030青森県AB

ソースコード

別ウィンドウで表示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class sort_unsortedrows : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            return;
        }

        // SPREADの設定
        InitSpread(FpSpread1);

        // シート設定
        InitSpreadStyles(FpSpread1.Sheets[0]);
    }

    private void InitSpread(FarPoint.Web.Spread.FpSpread spread)
    {
        spread.CssClass = "spreadStyle";
        spread.UseClipboard = false;
        spread.CommandBar.Visible = false;

        // データ連結
        System.Data.DataSet ds = new System.Data.DataSet();
        ds.ReadXml(MapPath("../App_Data/data30.xml"));
        spread.DataSource = ds;
    }

    private void InitSpreadStyles(FarPoint.Web.Spread.SheetView sheet)
    {
        // フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%");

        // シート設定
        sheet.PageSize = sheet.RowCount;
        sheet.FrozenRowCount = 2;

        // 列幅の設定
        sheet.Columns[0].Width = 70;
        sheet.Columns[1].Width = 70;
        sheet.Columns[2].Width = 80;
        sheet.Columns[3].Width = 140;
        sheet.Columns[4].Width = 140;
        sheet.Columns[5].Width = 50;
        sheet.Columns[6].Width = 80;
        sheet.Columns[7].Width = 50;
        sheet.Columns[8].Width = 60;
        sheet.Columns[9].Width = 70;
        sheet.Columns[10].Width = 300;

        // 列の非表示
        sheet.Columns[3].Visible = false;
        sheet.Columns[4].Visible = false;
        sheet.Columns[10].Visible = false;

        // 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle;

        // 自動ソートを有効化
        FpSpread1.ActiveSheetView.AllowSort = true;
    }

    protected void FpSpread1_SortColumnCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
    {
        // 固定行をソートしない
        e.SortFrozenRows = false;
    }
}
Partial Class sort_unsortedrows
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack Then
            Return
        End If

        ' SPREADの設定
        InitSpread(FpSpread1)

        ' シート設定
        InitSpreadStyles(FpSpread1.Sheets(0))
    End Sub

    Private Sub InitSpread(ByVal spread As FarPoint.Web.Spread.FpSpread)
        spread.CssClass = "spreadStyle"
        spread.UseClipboard = False
        spread.CommandBar.Visible = False

        ' データ連結
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(MapPath("../App_Data/data30.xml"))
        spread.DataSource = ds
    End Sub

    Private Sub InitSpreadStyles(ByVal sheet As FarPoint.Web.Spread.SheetView)
        ' フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%")

        ' シート設定
        sheet.PageSize = sheet.RowCount
        sheet.FrozenRowCount = 2

        ' 列幅の設定
        sheet.Columns(0).Width = 70
        sheet.Columns(1).Width = 70
        sheet.Columns(2).Width = 80
        sheet.Columns(3).Width = 140
        sheet.Columns(4).Width = 140
        sheet.Columns(5).Width = 50
        sheet.Columns(6).Width = 80
        sheet.Columns(7).Width = 50
        sheet.Columns(8).Width = 60
        sheet.Columns(9).Width = 70
        sheet.Columns(10).Width = 300

        ' 列の非表示
        sheet.Columns(3).Visible = False
        sheet.Columns(4).Visible = False
        sheet.Columns(10).Visible = False

        ' 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle

        ' 自動ソートを有効化
        FpSpread1.ActiveSheetView.AllowSort = True
    End Sub

    Protected Sub FpSpread1_SortColumnCommand(ByVal sender As Object, ByVal e As FarPoint.Web.Spread.SpreadCommandEventArgs) Handles FpSpread1.SortColumnCommand
        ' 固定行をソートしない
        e.SortFrozenRows = False
    End Sub
End Class

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="unsortedrows.aspx.cs" Inherits="sort_unsortedrows" %>

<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeaderPlaceHolder1" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <FarPoint:FpSpread ID="FpSpread1" runat="server" BorderColor="#A0A0A0" BorderStyle="Solid"
        BorderWidth="1px" onsortcolumncommand="FpSpread1_SortColumnCommand">
        <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
            ButtonShadowColor="ControlDark">
        </CommandBar>
        <Sheets>
            <FarPoint:SheetView SheetName="Sheet1">
            </FarPoint:SheetView>
        </Sheets>
    </FarPoint:FpSpread>
</asp:Content>