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. Это означает, что ваше всплывающее окно публикует информацию об элементе, выбранном в выпадающем списке, на сервер. Вы хотите, чтобы данные были представлены в скрытом поле в родительском окне браузера на клиенте.
Чтобы обновить эту информацию на клиенте, у вас есть два варианта:
- Напишите некоторый Javascript из дочернего окна, чтобы отправить данные в родительское окно.
- В вашем событии SelectedIndexChanged запишите данные в сеанс, а затем запустите обновление родительского окна, чтобы загрузить данные из сеанса.