MESCIUS SPREAD for ASP.NET 10.0J
オートコンプリート型セル

オートコンプリート型セルは、AJAX ControlToolkit のAutoComplete コントロールの機能を実現します。

このセル型の作成や設定は、AutoCompleteCellType クラスを使用して行います。

AJAX ControlTookitを使用したセル型の設定方法や注意点については「AJAX Control Toolkitを使用したセル型」を参照してください。

オートコンプリート型セルの編集にオートコンプリート機能を提供します。オートコンプリートの候補となる文字列は、Webサービスを使用して設定します。

設定方法

  1. AutoCompleteCellType クラスのインスタンスを作成して、オートコンプリート型セルを定義します。
  2. 必要なプロパティを設定します。
  3. 候補値となる文字列を取得するWebサービスを実装します。
  4. このセル型をセルに割り当てます。

サンプルコード

次のサンプルコードは、オートコンプリート型セルの設定例です。

FarPoint.Web.Spread.Extender.AutoCompleteCellType ac = new FarPoint.Web.Spread.Extender.AutoCompleteCellType();
ac.CompletionInterval = 1000;
ac.CompletionSetCount = 5;
ac.DelimiterCharacters = ";, :";
ac.ServicePath = "WebService.asmx";
ac.ServiceMethod = "GetAllNames";
ac.MinimumPrefixLength = 1;
ac.EnableCaching = true;
ac.ShowEditor = true;
FpSpread1.ActiveSheetView.Cells[0, 0].CellType = ac;

// WebService.axmx での実装
public class WebService : System.Web.Services.WebService {
    [WebMethod]
    public  string[] GetAllNames(string prefixText, int count)
    {
        ArrayList filteredList = new ArrayList();
        string[] names = {"AzamSharp","Scott","Alex","Mary","John","Ali","Sam","Sammy"};
        foreach (string name in names)
        {
                if (name.ToLower().StartsWith(prefixText.ToLower()))
                filteredList.Add(name);
        }
        return (string[]) filteredList.ToArray(typeof(string));
    }
}
Dim ac As New FarPoint.Web.Spread.Extender.AutoCompleteCellType()
ac.CompletionInterval = 1000
ac.CompletionSetCount = 5
ac.DelimiterCharacters = ";, :"
ac.ServicePath = "WebService.asmx"
ac.ServiceMethod = "GetAllNames"
ac.MinimumPrefixLength = 1
ac.EnableCaching = True
ac.ShowEditor = True
FpSpread1.ActiveSheetView.Cells(0, 0).CellType = ac

' WebService.axmx での実装
Public Class WebService
     Inherits System.Web.Services.WebService

    <WebMethod()>
    Public Function GetAllNames(ByVal prefixText As String, ByVal count As Integer) As String()
        Dim filteredList As ArrayList = New ArrayList
        Dim names() As String = {"AzamSharp", "Scott", "Alex", "Mary", "John", "Ali", "Sam", "Sammy"}

        For Each name As String In names
            If name.ToLower.StartsWith(prefixText.ToLower) Then
                filteredList.Add(name)
            End If
        Next
        Return CType(filteredList.ToArray(GetType(System.String)), String())
    End Function

End Class
関連トピック

 

 


© MESCIUS inc. All rights reserved.