首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RepositoryLookUpEdit显示显示在网格控制(页脚)

RepositoryLookUpEdit显示显示在网格控制(页脚)
EN

Stack Overflow用户
提问于 2015-01-14 23:38:39
回答 2查看 1.4K关注 0票数 0

我有三列的网格控件,其中一列是lookUpEdit控件。在单元格中,我显示它的值成员,这很好。但是我也想显示显示成员到页脚网格控件,比如信息文本。

如果在控件RepositoryLookUpEdit中选择不同的值??,则希望将其相应的文本值(displayMember)显示给网格控件的页脚。我的代码是这样的:

代码语言:javascript
复制
Dim edit As RepositoryItemLookUpEdit = New RepositoryItemLookUpEdit
edit.DataSource = ds.Tables(0)
edit.DisplayMember = ds.Tables(0).Columns("KONTOSIFRA").Caption.ToString
edit.ValueMember = ds.Tables(0).Columns("KONTOSIFRA").Caption.ToString
edit.SearchMode = SearchMode.AutoFilter

' ds.Tables(0).Columns("KONTONAZIV").Caption.ToString   ' This is what I want to show (display member)

dgvControl.RepositoryItems.Add((edit))

With dgView
    .Columns(1).Name = "KONTOSIFRA"
    .Columns(1).FieldName = "KONTOSIFRA"
    .Columns(1).Caption = "KONTO"
    .Columns(1).ColumnEdit = edit
    .Columns(1).DisplayFormat.FormatType = FormatType.Numeric
    .Columns(1).DisplayFormat.FormatString = "n"
    .Columns(1).OptionsColumn.AllowEdit = True
    .Columns(1).SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Custom
    .Columns(1).SummaryItem.DisplayFormat =  ' Here I need to insert display member...?


    Dim test As System.Data.DataRowView
    test = edit.Properties.GetRowByKeyValue(edit.EditValue)
    .Columns(1).SummaryItem.DisplayFormat = test.Item(1).ToString ' This works for gridLookUpEdit control, but my control is RepositoryLookUpEdit. How do I the same thing, only for my control?
End With
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-19 08:46:50

可以使用RepositoryItemLookUpEdit.GetDisplayValueByKeyValue方法从已知的值成员获取显示成员。您需要处理GridView.CustomSummaryCalculate事件。

下面是一个例子:

代码语言:javascript
复制
Private values As List(Of String)

Private Sub dgView_CustomSummaryCalculate(sender As Object, e As CustomSummaryEventArgs) Handles gridView1.CustomSummaryCalculate

    If Not e.IsTotalSummary Then
        Exit Sub
    End If

    Const fieldName$ = "KONTOSIFRA"

    Dim summaryItem As GridSummaryItem = TryCast(e.Item, GridSummaryItem)

    If summaryItem Is Nothing AndAlso summaryItem.FieldName <> fieldName$ Then
        Exit Sub
    End If

    Select Case e.SummaryProcess
        Case CustomSummaryProcess.Start
            values = New List(Of String)
        Case CustomSummaryProcess.Calculate
            Dim edit As RepositoryItemLookUpEdit = DirectCast(dgView.Columns(fieldName$).ColumnEdit, RepositoryItemLookUpEdit)
            Dim value As Object = edit.GetDisplayValueByKeyValue(e.FieldValue)

            If Not IsNothing(value) Then
                values.Add(value)
            End If
        Case CustomSummaryProcess.Finalize
            If values.Count > 0 Then
                e.TotalValue = String.Join(", ", values.Distinct())
            End If
    End Select

End Sub
票数 0
EN

Stack Overflow用户

发布于 2015-01-15 09:43:09

使用这样的方法:

代码语言:javascript
复制
.Columns(1).SummaryItem.DisplayFormat = "MyCustValue"

由于您已经将SummaryType设置为Custom,所以需要处理CustomSummaryCalculate事件。

在这种情况下,您可以这样做:

代码语言:javascript
复制
if (e.SummaryProcess == CustomSummaryProcess.Finalize) {
  var item = e.Item as GridColumnSummaryItem;
  if (item.FieldName == "KONTOSIFRA") {
    e.TotalValue = "blahblah";
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27954493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档