绑定网格视图内的多列 devexpress 组合框

Posted

技术标签:

【中文标题】绑定网格视图内的多列 devexpress 组合框【英文标题】:Bind a multicolumn devexpress combobox that is inside a gridview 【发布时间】:2012-09-04 21:59:42 【问题描述】:

所以我有一个 Dev Express 网格视图,它在后面的 cod 中绑定到它的数据源。这个数据源只是一个普通的 ORM 对象,它工作正常。当我在记录上点击编辑时,我试图让其中一列变成一个组合框。到目前为止,我已经能够使用以下代码完成此操作:

<dx:GridViewDataComboBoxColumn Caption="Invoice/Return#" 
FieldName="InvoiceNumber" ToolTip="Invoice/Return#"
VisibleIndex="4" Settings-AllowSort="False" Name="cmbOtherCostsInvoice">
<PropertiesComboBox ClientInstanceName="cmbOtherCostsInvoice">
</PropertiesComboBox>
<Settings AllowSort="False"></Settings>
</dx:GridViewDataComboBoxColumn>

我拦截行编辑事件并像这样绑定组合框:

protected void gridViewOtherCost_StartRowEditing(object sender, DevExpress.Web.Data.ASPxStartRowEditingEventArgs e)

    var allInvoices = GetCollection<PurchaseOrderInvoice>("PURCHASE_ORDER_KEY = " + purchaseOrder.Key);
    foreach (var item in allInvoices)
    
        (gridViewOtherCost.Columns[4] as GridViewDataComboBoxColumn).PropertiesComboBox.Items.Add(item.InvoiceNumber, item.InvoiceKey);
    

所以这可行,但我想让组合框成为多列。我在整个应用程序中还有其他一些多列,但没有一个嵌套在 gridview 中,所以我不知道该怎么做。这是一个独立的多列组合框的示例。

<dx:ASPxComboBox ID="cmbAssetPart" runat="server" CssClass="requiredfield" Width="100px
ValueField="AssetKEY" TextField="AssetID" TextFormatString="0">
<Columns>
    <dx:ListBoxColumn FieldName="AssetID" Name="AssetID" />
    <dx:ListBoxColumn FieldName="EntityName" Name="Entity" />
</Columns>

知道如何让它发挥作用吗?

【问题讨论】:

【参考方案1】:

在 PropertiesComboBox 标签之间定义 Columns 集合:

<dx:GridViewDataComboBoxColumn ....>
    <PropertiesComboBox ClientInstanceName="cmbOtherCostsInvoice">
        <Columns>
            <dx:ListBoxColumn FieldName="AssetID" Name="AssetID" />
            <dx:ListBoxColumn FieldName="EntityName" Name="Entity" />
        </Columns>
    </PropertiesComboBox>
</dx:GridViewDataComboBoxColumn>

【讨论】:

谢谢您,先生,这对我有用。解决此问题的其他几个错误,但至少我的数据正确显示。

以上是关于绑定网格视图内的多列 devexpress 组合框的主要内容,如果未能解决你的问题,请参考以下文章

Winforms的多列组合框控件[关闭]

Devexpress 中GridLookUpEdit的实现多列筛选问题。

使用查找组合框 c# 绑定 Datagridview 多列排序

如何将多行和多列绑定到列表视图?

网格内的 ExtJS 组合框

无法在 ext.net 网格面板内的组合框中检索和设置值