1

そのため、タラの背後にあるデータ ソースにバインドされている Dev Express グリッドビューがあります。このデータ ソースは単なる通常の ORM オブジェクトであり、正常に動作しています。レコードで編集を押したときに、列の 1 つをコンボボックスに変えようとしています。これまでのところ、次のコードでこれを達成できました。

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

これは機能しますが、コンボボックスを複数列にしたいと思います。アプリ全体に他にも複数列のものがありますが、グリッドビューにネストされているものはないため、どうすればよいかわかりません。スタンドアロンの複数列コンボ ボックスの例を次に示します。

<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>

これを機能させる方法はありますか?

4

1 に答える 1

2

PropertiesComboBox タグの間に Columns コレクションを定義します。

<dx:GridViewDataComboBoxColumn ....>
    <PropertiesComboBox ClientInstanceName="cmbOtherCostsInvoice">
        <Columns>
            <dx:ListBoxColumn FieldName="AssetID" Name="AssetID" />
            <dx:ListBoxColumn FieldName="EntityName" Name="Entity" />
        </Columns>
    </PropertiesComboBox>
</dx:GridViewDataComboBoxColumn>
于 2012-09-05T09:41:35.030 に答える