2017-08-31 70 views
0

我在Infragistics列中排序時遇到問題。更改Infragistics列中的排序類型

我有一個數字列(長型),但列數據類型是一個字符串。

所以現在它按無效的字符串排序。 如果我將列數據類型更改爲typeof(long),排序停止工作。

你知道如何改變數值的排序類型?

更新時間:

myCell.Column.DataType = typeof(string); 

我使用Infragistics4.Win.v12.2

+0

這很奇怪。你可以展示如何以及何時更改列數據類型?並告訴我們你正在使用什麼版本的Infragistics Ultragrid? – Steve

+0

@Steve我更新了我的帖子。 – Cieja

+0

但是這個列是一個綁定列嗎? – Steve

回答

0

,如果它是一個列有界的Da​​taSource,你不能改變列的數據類型屬性。相反,您可以使用表達式初始值設定項在數據源中創建一個新列,以允許您將字符串列轉換爲長列。然後在網格中,您可以隱藏字符串列,並讓用戶只能看到使用表達式創建的列。

假設你有這樣

DataTable dt = new DataTable(); 
sqlAdapter.Fill(dt); 

現在你可以添加使用表達式long類型的新列裝的DataTable那份字符串列的內容(我認爲每一個單行兌換長)

dt.Columns.Add("NewLongCol", typeof(long), "StringCol"); 
yourGrid.DataSource = dt; 

最後網格的InitializeLayout事件處理程序隱藏字符串列,並在其位置上的長列的位置

private void yourGrid_InitializeLayout(object sender, InitializeLayoutEventArgs e) 
{ 
    UltraGridBand b = e.Layout.Bands[0]; 
    int pos = b.Columns["StringCol"].Header.VisiblePosition; 
    b.Columns["StringCol"].Hidden = true; 
    b.Columns["NewLongCol"].Header.VisiblePosition = pos; 
}