ナビゲーション リンクのスキップ
 新機能 の展開 新機能
 InputMan連携 の展開 InputMan連携
 マルチタッチ機能 の展開 マルチタッチ機能
 セル、行、列、ヘッダ の展開 セル、行、列、ヘッダ
 シート の展開 シート
 スタイル の展開 スタイル
 選択 の展開 選択
 セル型 の展開 セル型
 編集 の展開 編集
 ソート の展開 ソート
 フィルタリング の縮小 フィルタリング
 グループ化 の展開 グループ化
 ページング の展開 ページング
 スクロール の展開 スクロール
 データ連結 の展開 データ連結
 階層表示 の展開 階層表示
 コマンドバー の展開 コマンドバー
 チャート の展開 チャート
 数式 の展開 数式
 インポート/エクスポート の展開 インポート/エクスポート
 クライアント側スクリプト の展開 クライアント側スクリプト

フィルタ項目の変更

FilterColumnDefinitionクラスのFilterListBehaviorプロパティに、FilterListBehavior列挙体を指定し、
フィルタ項目を変更することができます。

FilterListBehavior列挙体は下記のとおりです。
メンバ 解説
Custom [0] カスタム フィルタを使用します。
Blank [2] 必要に応じて、ドロップダウン リストに "(空白セル)" 項目を表示します。
NonBlank [4] 必要に応じて、ドロップダウン リストに "(空白以外のセル)" 項目を表示します。
DefaultFilter [1024] ドロップダウン リストに IFilterItem の DefaultFilterItem 実装を含めます。
SortAlphabetically [1025] デフォルトのフィルタ動作を使用し、ドロップダウン リストをアルファベット順に並べ替えます。
Default [1031] デフォルトのフィルタ動作(Blank + NonBlank + SortAlphabetically)を使用します。
SortByMostOccurrences [1032] ドロップダウン リストの項目を出現頻度が高い順に並べ替えます。
SortByLeastOccurrences [1040] ドロップダウン リストの項目を出現頻度が低い順に並べ替えます。

このサンプルでは下記のようにFilterListBehaviorが設定されています。
FilterListBehavior
氏名 NonBlank
カナ DefaultFilter
生年月日 SortAlphabetically
性別 Default
血液型SortByMostOccurrences
部署SortByLeastOccurrences
入社日Blank
 ID氏名カナ生年月日性別血液型部署入社日
 
11001亀甲 滋万キコウ シゲマ1950/02/04A人事部1972/04/01
21002寒田 希世カンダ キヨ1959/06/28B人事部1981/04/01
31003小和瀬 澄オワセ キヨ1969/03/06A人事部1991/04/01
41004宇夫 早余子ウブ サヨコ1976/07/28O人事部1998/04/01
51005宇田津 聖智ウダツ キヨトモ1965/09/04A営業部1987/04/01
61006茨城 昭児イバラキ ショウジ1963/04/28O営業部1985/04/01
71007石ヶ休 椎茄イシガキュウ シイナ1953/02/21O営業部1975/04/01
81008赤司 恵治郎アカツカサ ケイジロウ1968/08/02O経理部1990/04/01
91009小橋 仰一オハシ ギョウイチ1972/03/02B経理部1994/04/01
101010一重 公大イチジュウ コウダイ1964/04/19B経理部1986/04/01
111011稲並 勝五郎イナミ ショウゴロウ1962/02/18A営業部1984/04/01
121012穎原 紀代一エイハラ キヨカズ1965/02/13O営業部1987/04/01

ソースコード

別ウィンドウで表示
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;

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

        // SPREADの設定
        InitSpread(FpSpread1);

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

    private void InitSpread(FarPoint.Web.Spread.FpSpread spread)
    {
        // データ連結
        DataSet ds = new DataSet();
        ds.ReadXml(MapPath("../App_Data/data.xml"));
        spread.DataSource = ds;

        // SPREAD設定
        spread.CommandBar.Visible = false;
        spread.CssClass = "spreadStyle";
        spread.UseClipboard = false;
    }

    private void InitSheet(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.Columns[8].Visible = false;

        // 列幅の設定
        sheet.Columns[0].Width = 40;
        sheet.Columns[1].Width = 90;
        sheet.Columns[2].Width = 97;
        sheet.Columns[3].Width = 80;
        sheet.Columns[4].Width = 60;
        sheet.Columns[5].Width = 60;
        sheet.Columns[6].Width = 75;
        sheet.Columns[7].Width = 80;

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

        sheet.ColumnHeaderAutoTextIndex = 0;
        sheet.ColumnHeader.RowCount = 2;

        // フィルターを設定
        FarPoint.Web.Spread.HideRowFilter hideRowFilter = new FarPoint.Web.Spread.HideRowFilter(sheet);
        hideRowFilter.AllString = "<すべて>";
        hideRowFilter.NonBlanksString = "空白以外";
        sheet.RowFilter = hideRowFilter; //フィルターを設定
        sheet.ColumnHeaderAutoFilterIndex = 1;

        // フィルターに列を追加
        FarPoint.Web.Spread.FilterColumnDefinition fcd;
        fcd = new FarPoint.Web.Spread.FilterColumnDefinition(1, FarPoint.Web.Spread.FilterListBehavior.NonBlank);
        hideRowFilter.AddColumn(fcd);
        fcd = new FarPoint.Web.Spread.FilterColumnDefinition(2, FarPoint.Web.Spread.FilterListBehavior.DefaultFilter);
        hideRowFilter.AddColumn(fcd);
        fcd = new FarPoint.Web.Spread.FilterColumnDefinition(3, FarPoint.Web.Spread.FilterListBehavior.SortAlphabetically);
        hideRowFilter.AddColumn(fcd);
        fcd = new FarPoint.Web.Spread.FilterColumnDefinition(4, FarPoint.Web.Spread.FilterListBehavior.Default);
        hideRowFilter.AddColumn(fcd);
        fcd = new FarPoint.Web.Spread.FilterColumnDefinition(5, FarPoint.Web.Spread.FilterListBehavior.SortByLeastOccurrences);
        hideRowFilter.AddColumn(fcd);
        fcd = new FarPoint.Web.Spread.FilterColumnDefinition(6, FarPoint.Web.Spread.FilterListBehavior.SortByMostOccurrences);
        hideRowFilter.AddColumn(fcd);
        fcd = new FarPoint.Web.Spread.FilterColumnDefinition(7, FarPoint.Web.Spread.FilterListBehavior.Blank);
        hideRowFilter.AddColumn(fcd);
    }
}

Partial Public Class customfilteritem
    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)

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

    Private Sub InitSpread(ByVal spread As FarPoint.Web.Spread.FpSpread)
        ' データ連結
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(MapPath("../App_Data/data.xml"))
        spread.DataSource = ds

        ' SPREAD設定
        spread.CommandBar.Visible = False
        spread.CssClass = "spreadStyle"
        spread.UseClipboard = False
    End Sub

    Private Sub InitSheet(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.Columns(8).Visible = False

        ' 列幅の設定
        sheet.Columns(0).Width = 40
        sheet.Columns(1).Width = 90
        sheet.Columns(2).Width = 97
        sheet.Columns(3).Width = 80
        sheet.Columns(4).Width = 60
        sheet.Columns(5).Width = 60
        sheet.Columns(6).Width = 75
        sheet.Columns(7).Width = 80

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

        sheet.ColumnHeaderAutoTextIndex = 0
        sheet.ColumnHeader.RowCount = 2

        ' フィルターを設定
        Dim hideRowFilter As New FarPoint.Web.Spread.HideRowFilter(sheet)
        hideRowFilter.AllString = "<すべて>"
        hideRowFilter.NonBlanksString = "空白以外"
        sheet.RowFilter = hideRowFilter
        'フィルターを設定
        sheet.ColumnHeaderAutoFilterIndex = 1

        ' フィルターに列を追加
        Dim fcd As FarPoint.Web.Spread.FilterColumnDefinition
        fcd = New FarPoint.Web.Spread.FilterColumnDefinition(1, FarPoint.Web.Spread.FilterListBehavior.NonBlank)
        hideRowFilter.AddColumn(fcd)
        fcd = New FarPoint.Web.Spread.FilterColumnDefinition(2, FarPoint.Web.Spread.FilterListBehavior.DefaultFilter)
        hideRowFilter.AddColumn(fcd)
        fcd = New FarPoint.Web.Spread.FilterColumnDefinition(3, FarPoint.Web.Spread.FilterListBehavior.SortAlphabetically)
        hideRowFilter.AddColumn(fcd)
        fcd = New FarPoint.Web.Spread.FilterColumnDefinition(4, FarPoint.Web.Spread.FilterListBehavior.Default)
        hideRowFilter.AddColumn(fcd)
        fcd = New FarPoint.Web.Spread.FilterColumnDefinition(5, FarPoint.Web.Spread.FilterListBehavior.SortByLeastOccurrences)
        hideRowFilter.AddColumn(fcd)
        fcd = New FarPoint.Web.Spread.FilterColumnDefinition(6, FarPoint.Web.Spread.FilterListBehavior.SortByMostOccurrences)
        hideRowFilter.AddColumn(fcd)
        fcd = New FarPoint.Web.Spread.FilterColumnDefinition(7, FarPoint.Web.Spread.FilterListBehavior.Blank)
        hideRowFilter.AddColumn(fcd)
    End Sub
End Class
<%@ Page MasterPageFile="~/MasterPage.master" Language="c#" AutoEventWireup="true" 
         Inherits="customfilteritem" CodeFile="customfilteritem.aspx.cs" %>

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

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