Параметр в 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.

Другие вопросы по тегам