Параметр в UpdateParameter для типа GridViewDataComboBoxColumn не извлекает значение для команды обновления
Кажется, что когда я использую следующее обновление
UpdateCommand="UPDATE XXXXXX SET MedicationType = @MedicationType, BillingCode = @BillingCode, ServiceType = @ServiceType,
Charge = @Charge, Reimbursement = @Reimbursement,MinLength = @MinLength,MaxLength=@MaxLength,
Units = @Units, RateCode = @RateCode, RevenueCode = @RevenueCode,PlaceOfService = @PlaceOfService,
Taxonomy = @Taxonomy ,UpdatedDate = GETDATE(),UpdatedBy = @UserID WHERE ID = @ID"
deleteCommand="Delete from tblFeeScheduleDetails where ID = @ID "
Я пытаюсь получить vlues из типа службы, но это не работает. Ниже приведен код GridViewDataComboBoxColumn.
<dx:GridViewDataComboBoxColumn Caption="ServiceType" FieldName="ServiceType" >
<EditItemTemplate>
<dx:ASPxGridLookup ID="ddlServiceType" runat="server" SelectionMode="Multiple" DataSourceID="serviceTypes" ClientInstanceName="ddlServiceType"
KeyFieldName="Description" OnInit="Lookup_Init" TextFormatString="{0}" MultiTextSeparator=", " GridViewProperties-Settings-ShowColumnHeaders="true"
GridViewProperties-Settings-ShowFilterRow="false">
<Columns>
<dx:GridViewCommandColumn ShowSelectCheckbox="True" Width="30px" SelectAllCheckboxMode="AllPages" />
<dx:GridViewDataColumn FieldName="Description" Width="200px" />
</Columns>
<GridViewProperties>
<Templates>
<StatusBar>
<table class="OptionsTable" style="float: right">
<tr>
<td>
<dx:ASPxButton ID="Close" runat="server" AutoPostBack="false" Text="Close">
<ClientSideEvents Click="function(s, e) {
ddlServiceType.ConfirmCurrentSelection();
ddlServiceType.HideDropDown();
ddlServiceType.Focus();
return false;
}" />
</dx:ASPxButton>
</td>
</tr>
</table>
</StatusBar>
</Templates>
<Settings VerticalScrollableHeight="250" VerticalScrollBarMode="Auto" />
<SettingsPager Mode="ShowAllRecords" AlwaysShowPager="false"></SettingsPager>
</GridViewProperties>
</dx:ASPxGridLookup>
</EditItemTemplate>
</dx:GridViewDataComboBoxColumn>
Все, что я пробовал, не сохраняет значения, которые я меняю, когда нажимаю «Обновить» во внешнем интерфейсе.
1 ответ
Чтобы передать связанное значение из элемента управления шаблона (ASPxGridLookup ID="ddlServiceType"), вам необходимо определить выражение двусторонней привязки для связанного привязываемого свойства. Итак, если вы используете ASPxGridLookup в режиме (SelectionMode="Multiple") и имеете конфигурацию (TextFormatString="{0}" MultiTextSeparator=", "), вы можете автоматически получить несколько выбранных значений (из {0} - Столбец FieldName="Description"), разделенный (MultiTextSeparator=", "), путем добавления выражения (Text='<%#Bind("ServiceType")%>'):
<dx:GridViewDataComboBoxColumn ... FieldName="ServiceType" >
<EditItemTemplate>
<dx:ASPxGridLookup ID="ddlServiceType" ... Text='<%#Bind("ServiceType")%>'
SelectionMode="Multiple" TextFormatString="{0}" MultiTextSeparator=", ">
</dx:ASPxGridLookup>
</EditItemTemplate>
</dx:GridViewDataComboBoxColumn>
Если вам нужно получить несколько выбранных значений в другом формате, используйте этот подход, обработайте необходимые события ASPxGridView.RowInserting/RowUpdating, извлеките значения из элементов управления шаблона и передайте их в словарь e.NewValues.