2012-03-15 18 views
0

整数データを含むultrawingridに文字列があります。その列に1000個の区切り記号を使用する必要があります。しかし、私がformatプロパティを使用したとき、文字列では機能しないことに気付きました。UltraWingrid - 文字列に1000個の区切り文字

誰かがそれを行う方法を知っていますか?

+0

誰かがそれに応答できますか? – user899055

+0

Infragisticsタグを使用します。 – Steve

答えて

4

IDataFilter派生クラスを列のEditor.DataFilterプロパティに関連付ける必要があります。あなたは文字列型の「NumberCode」という名前のバインドされた列を持っ例えば仮定 、あなたのグリッド

UltraGridColum cl = e.DisplayLayout.Bands[0].Columns["NumberCode"]; 
cl.Editor.DataFilter = new ThousandSeparator(); 

のInitializeLayoutイベントにこのコードを配置し、インターフェイスを実装する単純なクラスを作成するには、このようなIDataFilter:

public class ThousandFormatter : IEditorDataFilter 
{ 
    public ThousandFormatter() 
    { } 

    public object Convert(EditorDataFilterConvertArgs conversionArgs) 
    { 
     if (conversionArgs.Direction == ConversionDirection.OwnerToEditor) 
     { 
      UltraGridCell cell = conversionArgs.Context as UltraGridCell; 
      if (cell != null && cell.Column.Key == "NumberCode") 
      { 
       conversionArgs.Handled = true; 
       decimal dValue = System.Convert.ToDecimal(conversionArgs.Value); 
       return dValue.ToString("#,##0"); 
      } 
     } 
     return conversionArgs.Value; 
    } 
} 
+0

この変換関数はどこで呼び出されるのですか? – user899055

+0

これは、セル値を表示する必要があるときにconvertを呼び出すUltraWinGridコントロールです。この関数はConversionDirection.EditorToOwnerに対しても呼び出されることに注意してください。最初のプログラムにブレークポイントを設定し、プログラムを実行すると、InitializeLayoutイベントの終了時にヒットします。 – Steve

+0

Convert関数が呼び出されていません。 – user899055

関連する問題