入力補助機能 - オートフィルタ -

コンボコントロールでは、入力した文字によりリストボックスの項目をフィルタリングすることができます。

入力確認
オートフィルタ
フィルタリング開始までの時間
フィルタリングで取得できる最大項目数
フィルタリングを開始する最小文字数
フィルタリングの一致方法

ソースコード

別ウィンドウで表示
using System;
using System.Drawing;

public partial class Input_AutoFilter : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            foreach (FontFamily fItem in FontFamily.Families)
            {
                // コンボ項目にフォント名称を設定します
                GcComboBox1.Items.Add(fItem.Name);
            }
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        // オートフィルタ機能を設定します。
        GcComboBox1.AutoFilter.Enabled = CheckBox1.Checked;
        GcComboBox1.AutoFilter.Interval = (int)GcNumber1.Integer;
        GcComboBox1.AutoFilter.MaxFilteredItem = (int)GcNumber2.Integer;
        GcComboBox1.AutoFilter.MinimumPrefixLength = (int)GcNumber3.Integer;
        GcComboBox1.AutoFilter.MatchingMode = (GrapeCity.Web.Input.IMCombo.FilterMatchingMode)DropDownList1.SelectedIndex;
    }
}
Imports System.Drawing

Partial Class Input_AutoFilter
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            For Each fItem As FontFamily In FontFamily.Families
                ' コンボ項目にフォント名称を設定します
                GcComboBox1.Items.Add(fItem.Name)
            Next
        End If
    End Sub

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        ' オートフィルタ機能を設定します。
        GcComboBox1.AutoFilter.Enabled = CheckBox1.Checked
        GcComboBox1.AutoFilter.Interval = GcNumber1.Integer
        GcComboBox1.AutoFilter.MaxFilteredItem = GcNumber2.Integer
        GcComboBox1.AutoFilter.MinimumPrefixLength = GcNumber3.Integer
        GcComboBox1.AutoFilter.MatchingMode = DropDownList1.SelectedIndex
    End Sub

End Class

<%@ page title="" language="C#" masterpagefile="~/MasterPage.master" autoeventwireup="true" inherits="Input_AutoFilter, App_Web_fud0ams1" stylesheettheme="SkinFile" %>

<%@ Register assembly="GrapeCity.Web.Input.v80, Version=8.0.2016.1130, Culture=neutral, PublicKeyToken=c3bd7c1dccef5128" namespace="GrapeCity.Web.Input.IMCombo" tagprefix="im_combo" %>
<%@ Register assembly="GrapeCity.Web.Input.v80, Version=8.0.2016.1130, Culture=neutral, PublicKeyToken=c3bd7c1dccef5128" namespace="GrapeCity.Web.Input.IMNumber" tagprefix="im_number" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <script type="text/javascript">
        // オートフィルタ機能を有効にするかどうか設定します。
        function SetAutoFilter(obj) {
            if (!document.getElementById("isClient").checked) return;

            FindIMControl("<% =GcComboBox1.ClientID %>").SetAutoFilterEnabled(obj.checked);
        }
        // フィルタリング開始までの時間を設定します。
        function GcNumber1_ValueChanged(sender, eArgs) {
            if (!document.getElementById("isClient").checked) return;

            FindIMControl("<% =GcComboBox1.ClientID %>").SetAutoFilterInterval(sender.GetInteger());
        }
        // フィルタリングで取得できる最大項目数を設定します。
        function GcNumber2_ValueChanged(sender, eArgs) {
            if (!document.getElementById("isClient").checked) return;

            FindIMControl("<% =GcComboBox1.ClientID %>").SetAutoFilterMaxFilteredItem(sender.GetInteger());
        }
        // フィルタリングを開始する最小項目数を設定します。
        function GcNumber3_ValueChanged(sender, eArgs) {
            if (!document.getElementById("isClient").checked) return;

            FindIMControl("<% =GcComboBox1.ClientID %>").SetAutoFilterMinimumPrefixLength(sender.GetInteger());
        }
        // フィルタリングの一致方法を設定します。
        function MatchingMode(matchingmode) {
            if (!document.getElementById("isClient").checked) return;

            FindIMControl("<% =GcComboBox1.ClientID %>").SetAutoFilterMatchingMode(matchingmode);
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <div class="sample">
        <table>
            <tr>
                <th>入力確認</th>
            </tr>
            <tr>
                <td>
                    <im_combo:gccombobox ID="GcComboBox1" runat="server" HasLoadFromXml="True" 
                        Width="200px" ImeMode="InActive">
                        <AutoFilter Enabled="True" Interval="500" MinimumPrefixLength="1" />
                        <helpvalue ></helpvalue>
                    </im_combo:gccombobox>
                </td>
            </tr>
        </table>
    </div>
    <label style="font-size:80%;"><input type="checkbox" id="isClient" checked="checked" /> クライアント側の設定を有効にする</label>
    <table class="inputTable">
        <tr>
            <th class="inputTh">オートフィルタ</th>
            <td class="inputTd">
                <asp:CheckBox ID="CheckBox1" runat="server" Checked="True" Text="有効にする" onclick="SetAutoFilter(this);" />
            </td>
        </tr>
        <tr>
            <th class="inputTh">フィルタリング開始までの時間</th>
            <td class="inputTd">
                <im_number:gcnumber ID="GcNumber1" runat="server" HasLoadFromXml="True" 
                    MinValue="0">
                    <helpvalue value="500"></helpvalue>
                    <Format Digit="####0.##" NegativePrefix="-" PositiveSuffix=" ミリ秒" />
                    <DisplayFormat Digit="####0.##" NegativePrefix="-" PositiveSuffix=" ミリ秒" />
                    <clientevents valuechanged="GcNumber1_ValueChanged"></clientevents>
                    <DropDown Visible="False" /><Spin Visible="True" />
                </im_number:gcnumber>
            </td>
        </tr>
        <tr>
            <th class="inputTh">フィルタリングで取得できる最大項目数</th>
            <td class="inputTd">
                <im_number:gcnumber ID="GcNumber2" runat="server" HasLoadFromXml="True" 
                    MinValue="0">
                    <helpvalue value="10"></helpvalue>
                    <clientevents valuechanged="GcNumber2_ValueChanged"></clientevents>
                    <DropDown Visible="False" Enabled="false" /><Spin Visible="True" />
                </im_number:gcnumber>
            </td>
        </tr>
        <tr>
            <th class="inputTh">フィルタリングを開始する最小文字数</th>
            <td class="inputTd">
                <im_number:gcnumber ID="GcNumber3" runat="server" HasLoadFromXml="True" 
                    MinValue="0">
                    <helpvalue value="1"></helpvalue>
                    <clientevents valuechanged="GcNumber3_ValueChanged"></clientevents>
                    <DropDown Visible="False" Enabled="false" /><Spin Visible="True" />
                </im_number:gcnumber>
            </td>
        </tr>
        <tr>
            <th class="inputTh">フィルタリングの一致方法</th>
            <td class="inputTd">
                <asp:DropDownList ID="DropDownList1" runat="server" onchange="MatchingMode(this.value);">
                    <asp:ListItem Selected="True" Value="matchstartwith">前方一致・大文字小文字区別なし・文字種区別あり</asp:ListItem>
                    <asp:ListItem Value="matchall">部分一致・大文字小文字区別なし・文字種区別あり</asp:ListItem>
                    <asp:ListItem Value="ambiguousmatchstartwith">前方一致・大文字小文字区別なし・文字種区別なし</asp:ListItem>
                    <asp:ListItem Value="ambiguousmatchall">部分一致・大文字小文字区別なし・文字種区別なし</asp:ListItem>
                    <asp:ListItem Value="exactmatchstartwith">前方一致・大文字小文字区別あり・文字種区別あり</asp:ListItem>
                    <asp:ListItem Value="exactmatchall">部分一致・大文字小文字区別あり・文字種区別あり</asp:ListItem>
                </asp:DropDownList>
            </td>
        </tr>
    </table>
    <center>
        <asp:Button ID="Button1" runat="server" CssClass="button_nowidth" Text="サーバー側で設定" 
            onclick="Button1_Click" />
    </center>
</asp:Content>


このページの先頭へ戻る