0

我有一个 RadGrid,它打开一个用于更新记录的弹出窗口。在编辑弹出窗口中,我有一个组合框,其中包含 selectedindex 更改事件。在那种情况下,我试图设置网格页面上的 HiddenFields。这意味着隐藏的字段不在网格的同一范围内。

页面.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>

代码隐藏

    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

... }

4

1 回答 1

0

您正在 SelectedIndexChanged 事件上触发服务器端事件。这意味着您的弹出窗口正在将有关在组合框中选择的项目的信息发布到服务器。您希望数据显示在客户端父浏览器窗口的隐藏字段中。

为了在客户端更新该信息,您有两种选择:

  1. 从子窗口编写一些 Javascript 以将数据发送到父窗口。
  2. 在 SelectedIndexChanged 事件中将数据写入会话,然后触发父窗口的刷新以从会话加载数据
于 2013-07-23T13:27:46.280 回答