如何使UltragridColumn样式URL可编辑

时间:2013-07-30 06:28:47

标签: vb.net infragistics ultragrid

我有一个Ultragrid,其列样式为URL。默认情况下,此列是只读的,颜色为灰色。现在我必须使此列可编辑。当它是URL时,我尝试更改列样式。但它不起作用。

//代码:

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

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使UltraGridColumn可编辑取决于许多特性。

首先,UltraGrid应该允许更新。这由财产控制

grid.DisplayLayout.Override.AllowUpdate = DefaultableBoolean.True

使用此属性可以更新整个网格(您可以限制此应用相同的属性,但在Bands级别)。但是,这还不足以启用编辑,因为您需要设置(对于个人列)两个其他属性

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);
    }