RadGrid Edit Popup

У меня есть RadGrid, который открывает всплывающее окно для обновления записей. Во всплывающем окне редактирования у меня есть выпадающий список, в котором есть событие selectedindex. В этом случае я пытаюсь установить HiddenFields, которые находятся на странице сетки. Это означает, что скрытые поля не находятся в той же области сетки.

page.aspx

    <div>
                    <RadGrid runat="server" ID="GlJournalEntryGrid" Height="300px" Width="1400px"
                        AutoGenerateColumns="False" OnNeedDataSource="GlJournalEntryGrid_NeedDataSource"
                        OnItemCommand="GlJournalEntryGrid_ItemCommand"
                        OnItemDataBound="GlJournalEntryGrid_ItemDataBound">

... Edit PopUp and controls....the comboBox that updates one of the other HF below...

                    </RadGrid>
                </div>
                <div id="HiddenFieldsForGlChartLU">
                    <asp:HiddenField runat="server" ID="jegAccountHF" />
                    <asp:HiddenField runat="server" ID="jegCompanyHF" />
                    <asp:HiddenField runat="server" ID="jegDivisionHF" />
                    <asp:HiddenField runat="server" ID="jegRegionHF" />
                    <asp:HiddenField runat="server" ID="jegDepartmentHF" />
                </div>

Код-Behind

    protected void jegCompany_ComboBox_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {            
        #region Set HiddenField for control so accessible by javascript

        if (cbCompany.SelectedValue != null)
            jegCompanyHF.Value = cbCompany.SelectedValue;
        else
            jegCompanyHF.Value = "";

        #endregion Set HiddenField for control so accessible by javascript

...}

1 ответ

Вы запускаете событие на стороне сервера для события SelectedIndexChanged. Это означает, что ваше всплывающее окно публикует информацию об элементе, выбранном в выпадающем списке, на сервер. Вы хотите, чтобы данные были представлены в скрытом поле в родительском окне браузера на клиенте.

Чтобы обновить эту информацию на клиенте, у вас есть два варианта:

  1. Напишите некоторый Javascript из дочернего окна, чтобы отправить данные в родительское окно.
  2. В вашем событии SelectedIndexChanged запишите данные в сеанс, а затем запустите обновление родительского окна, чтобы загрузить данные из сеанса.
Другие вопросы по тегам