【问题标题】:RadAjaxManager is not working with Panels in asp.netRadAjaxManager 不适用于 asp.net 中的面板
【发布时间】:2013-09-04 17:55:32
【问题描述】:

我只是在试验和尝试让 Rad Ajax 工作。我创建了两个按钮和两个与之关联的事件。第一个按钮将 Lable1 的文本更改为 Hi,第二个按钮将 Label2 更改为 Bye,而不加载整个页面。

这里是代码。

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="Button1">
 <UpdatedControls>
  <telerik:AjaxUpdatedControl ControlID="Panel1" />
  <telerik:AjaxUpdatedControl ControlID="Label1" />
 </UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="Button2">
 <UpdatedControls>
  <telerik:AjaxUpdatedControl ControlID="Panel1" />
  <telerik:AjaxUpdatedControl ControlID="Label1" />
 </UpdatedControls>
 </telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Hi" 
Width="41px" />
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Bye" />
<br />
<asp:Panel ID="Panel1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label1"></asp:Label>
</asp:Panel>
<asp:Panel ID="Panel2" runat="server">
   <asp:Label ID="Label2" runat="server" Text="Label2"></asp:Label>
</asp:Panel>

代码后面:

   protected void Page_Load(object sender, EventArgs e)
    {
        if(IsPostBack)
        Response.Write("Page Loaded");
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "Hi";

    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Label2.Text = "Bye";
    }

此代码在没有 RadAjax 的情况下完美运行,但我想使用 Rad Ajax 实现它,以便在需要时仅更新 Label1 和 Label2 而无需加载页面。

有人可以帮我解决这个问题吗?

谢谢。

【问题讨论】:

    标签: c# asp.net updatepanel rad radajaxmanager


    【解决方案1】:

    在使用 ASP.NET Ajax 时不能使用 Response 对象。

    此外,您在UpdatedControls 标签中有错字 - 请参阅评论。

    protected void Page_Load(object sender, EventArgs e)
    {
      // You cannot have Response.Write here.
    }
    
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="Button1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Panel1" />
                    <telerik:AjaxUpdatedControl ControlID="Label1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="Button2">
                <UpdatedControls>
                    <%-- Must be Panel2 and Label2 --%>
                    <telerik:AjaxUpdatedControl ControlID="Panel2" /> 
                    <telerik:AjaxUpdatedControl ControlID="Label2" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    

    【讨论】:

    • 为什么我不能在页面加载中使用响应对象?我想看看 rad ajax 管理器是否正在执行回发。我还能如何检查?
    • 这是一个众所周知的问题。 what it is and how to avoid it 您可以使用标签控件而不是 Response.Write。 注意:请确保在 UpdatedControls 标记中包含该标签控件。
    猜你喜欢
    • 2023-03-14
    • 2018-08-20
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多