そのため、タラの背後にあるデータ ソースにバインドされている 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>
これを機能させる方法はありますか?