2013-07-30 75 views
0

我有一個Ultragrid它具有列樣式作爲URL。默認情況下該列是隻讀的,它是灰色的。現在我必須將此列設置爲可編輯。當我試圖改變列的樣式時,它是URL。但它不起作用。如何使UltragridColumn樣式URL可編輯

//代碼:

If (CType(Field.FieldTypeId, ColumnStyle) = ColumnStyle.URL) Then 
     UltraGridColumn.Style = ColumnStyle.Default 
Else 
     UltraGridColumn.Style = CType(Field.FieldTypeId, ColumnStyle) 
End If 

我怎樣才能做到這一點?

回答

1

爲了使UltraGridColumn可編輯取決於許多特性。

首先,UltraGrid應該允許更新。這是由物業

grid.DisplayLayout.Override.AllowUpdate = DefaultableBoolean.True 

與這個屬性,你讓整個電網進行更新控制(你可以限制該應用相同的屬性,但在樂隊的水平)。但是,因爲你需要設置的(個人列)其他兩個屬性

column.CellActivation = Activation.AllowEdit 
column.CellClickAction = CellClickAction.Edit 

不過,我已經對URL風格的一些研究,這是不夠的,啓用編輯。看起來這種風格爲您的列指定了一個不允許以任何方式編輯鏈接文本的對象(它被認爲是一個標籤)FormattedLinkEditor。所以我建議,除非來自Infragistics的人有更好的建議,否則可以使用正常編輯欄。 (當然,如果你的目的只是爲了編輯鏈接文本)

這個簡短的例子捕獲單擊單元格,並試圖啓動一個編輯會話,但沒有成功

private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) 
    { 
     UltraGridColumn cc = e.Layout.Bands[0].Columns[0]; 
     cc.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.URL; 
     (cc.Editor as FormattedLinkEditor).LinkClicked += Form1_LinkClicked; 
     cc.CellActivation = Activation.AllowEdit; 
     cc.CellClickAction = CellClickAction.EditAndSelectText; 
     cc.Width = 500; 
    } 

    void Form1_LinkClicked(object sender, Infragistics.Win.FormattedLinkLabel.LinkClickedEventArgs e) 
    { 
     e.OpenLink = false; 
     ultraGrid1.PerformAction(UltraGridAction.EnterEditMode); 
    } 
+0

史蒂夫:它的工作原理除了具有URL樣式的列外。你能幫我嗎? – iamCR

+0

我已經測試了URL風格並且它是隻讀的。我會盡量調查它的時間允許 – Steve

+0

檢查此鏈接是否有任何幫助http://www.infragistics.com/community/forums/t/54671.aspx – Steve