Я хочу использовать AspxGridView со списком в столбце. Для этого я создаю сетку следующим образом:
<dx:ASPxGridView ID="gridDX" ClientInstanceName="grid" runat="server" KeyFieldName="BelMat" OnDataBinding="gridDX_DataBinding" AutoGenerateColumns="False" Theme="DevEx" OnPageIndexChanged="gridDX_PageIndexChanged">
<Columns>
<dx:GridViewCommandColumn ShowClearFilterButton="True" VisibleIndex="0">
</dx:GridViewCommandColumn>
<dx:GridViewDataColumn FieldName="Print" Caption="Print" VisibleIndex="1" Settings-AllowAutoFilter="False" Settings-AllowHeaderFilter="False">
<DataItemTemplate>
<dx:ASPxHyperLink ID="hypPrint" runat="server" ImageUrl="~/img/printer_call_off.png" ImageWidth="18px" OnDataBound="hypPrint_OnDataBound"></dx:ASPxHyperLink>
</DataItemTemplate>
</dx:GridViewDataColumn>
<dx:GridViewDataColumn FieldName="Edit" Caption="Show" VisibleIndex="2" Settings-AllowAutoFilter="False" Settings-AllowHeaderFilter="False">
<DataItemTemplate>
<dx:ASPxHyperLink CssClass="fancybox" ID="hypShowEdit" ClientInstanceName="hypShowEdit" runat="server" ImageWidth="18px" ImageUrl="~/img/magnifying-glass_call_off.png" Text="Show/Edit" NavigateUrl="#">
</dx:ASPxHyperLink>
</DataItemTemplate>
</dx:GridViewDataColumn>
<dx:GridViewDataColumn FieldName="BelNo" Caption="PO No." VisibleIndex="3"></dx:GridViewDataColumn>
<dx:GridViewDataColumn FieldName="BelMat" Caption="PO Item" VisibleIndex="4"></dx:GridViewDataColumn>
<dx:GridViewDataColumn FieldName="Material" Caption="Material No." VisibleIndex="5"></dx:GridViewDataColumn>
<dx:GridViewDataColumn FieldName="Description" Caption="Material Description" VisibleIndex="6" Settings-AllowAutoFilter="False" Settings-AllowHeaderFilter="False"></dx:GridViewDataColumn>
<dx:GridViewDataComboBoxColumn Caption="Pack. Ins." VisibleIndex="7" FieldName="PACKAGING" Settings-AllowAutoFilter="False">
<PropertiesComboBox TextField="Ad" ValueField="ID">
</PropertiesComboBox>
<dx:GridViewDataColumn FieldName="Quantity" Caption="Quantity" VisibleIndex="8" Settings-AllowAutoFilter="False" Settings-AllowHeaderFilter="False">
<DataItemTemplate>
<dx:ASPxTextBox ID="txtNumberOfPrint" runat="server" Width="60px" Text="1"><dx:ASPxTextBox>
</DataItemTemplate>
</dx:GridViewDataColumn>
<dx:GridViewCommandColumn VisibleIndex="9" Caption="Save" ButtonType="Image" ShowInCustomizationForm="False" ShowUpdateButton="True">
<CustomButtons>
<dx:GridViewCommandColumnCustomButton ID="btnSend" Text="Send ATB" Image-Width="18" Image-Url="../../img/upload_call_off.png">
</dx:GridViewCommandColumnCustomButton>
</CustomButtons>
</dx:GridViewCommandColumn>
</Columns>
</dx:ASPxGridView>
И у меня есть такие классы:
public class SchedulingAgreementHeaderDTO
{
public string BelNo { get; set; }
public string BelMat { get; set; }
public string Material { get; set; }
public string Description { get; set; }
public IEnumerable<ValueObject> PACKAGING { get; set; }
}
public class ValueObject
{
public string ID { get; set; }
public string Ad { get; set; }
}
Я заполняю свой список IEnumerable, называемый data3, как в изображении
List<SchedulingAgreementHeaderDTO> sahList = new List<SchedulingAgreementHeaderDTO>();
foreach (var item in Tlist)
{
SchedulingAgreementHeaderDTO sah = new SchedulingAgreementHeaderDTO
{
BelNo = item.BelNo,
BelMat = item.BelMat,
Material = item.Material,
Description = item.Description,
PACKAGING = (from x in bizObj.GetPackagingInstructions("SI", item.Material).returnValue
select new ValueObject()
{
ID = x.ID,
Name= x.Ad
}).ToList()
};
sahList.Add(sah);
}
var data3 = sahList.AsEnumerable();
Я хочу заполнить комбинированный список значениями УПАКОВКИ. УПАКОВКА может содержать более 1 значения. Если я не заполняю PACKAGING и не привязываю данные к сетке, сетка связывается и работает нормально. Когда я хочу использовать PACKAGING для выпадающего списка, я получаю эту ошибку:
IConvertible nesne tarafından uygulanmalıdır. Açıklama: Geçerli web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın izlemesini gözden geçirin.
Özel Durum Ayrıntıları: System.InvalidCastException: IConvertible nesne tarafından uygulanmalıdır.
Kaynak Hatası:
Satır 54:
Satır 55: if (!IsPostBack)
Satır 56: gridDX.DataBind();
Satır 57: }
Satır 58:
Как я могу решить эту проблему?