0

我有一个将 AutoPostBack 设置为 true 的 ASP.Net RadioButtonList 控件和一个用于 SelectedIndexChanged 事件的服务器端处理程序。

<asp:RadioButtonList runat="server" ID="btnAcceptReject" RepeatDirection="Horizontal" CssClass="checkboxlist borderless" ValidationGroup="data" AutoPostBack="true" OnSelectedIndexChanged="radioButtonList_SelectedIndexChanged">
    <asp:ListItem Text="The edition is hereby validated for conformity to standards" Value="0" Selected="True"></asp:ListItem>
    <asp:ListItem Text="The edition does not meet standards and still has to be reviewed" Value="1"></asp:ListItem>
</asp:RadioButtonList>

我正在使用一个 Telerik 控件 RadAjaxManager 来处理 ajax 回发

<telerik:RadAjaxManagerProxy runat="server" ID="RadAjaxManagerPRoxy1">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="btnAcceptReject">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="pnlControls" />
            </UpdatedControls>
        </telerik:AjaxSetting>
</AjaxSettings>

pnlControl 是页面上的一个面板,其中包含将根据选中的单选按钮启用/禁用的控件。

以上始终执行页面的完整回发。

我怎样才能让它执行 ajax 部分回发?

4

1 回答 1

0

这可能是您使用 RadAjaxManagerProxy 而不是 RadAjaxManager 的结果吗?

RadAjaxManagerProxy 期望在母版页等的其他地方声明一个 RadAjaxManager。

如果失败,那么我建议将 pnlControl 更改为 RadAjaxPanel,然后删除 RadAjaxManagerProxy 声明,因为 RadAjaxPanel 将为您完成所有工作。

祝你好运!


在回复您的评论时,我现在建议在引用 ASPX 页面中执行以下操作(如果在您的情况下可以这样做):

  • 将 RadAjaxManagerProxy 添加到客户端
  • 在代码隐藏中添加一个要在 Page_Load 期间调用的新 Sub(在回发检查之外)
  • 子内:

将面板调暗为 Panel = CType(myUserControl.FindControl("pnlControls"),Panel) 将单选调暗为 RadioButtonList = CType(myUserControl.FindControl("btnAcceptReject"), RadioButtonList)

RadAjaxManagerProxy1.AjaxSettings.AddAjaxSetting(收音机,面板,无)

*Nothing - 如果您在 .ASPX 页面上声明了一个,则可以选择 RadAjaxLoadingPanelID

希望能帮助到你!

于 2013-11-05T10:35:14.207 回答