首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一页上使用两个Telerik RadAjaxPanel控件

在同一页上使用两个Telerik RadAjaxPanel控件
EN

Stack Overflow用户
提问于 2012-09-27 15:24:47
回答 2查看 10.3K关注 0票数 0

是否可以在同一页上并排使用两个独立的RadAjaxPanel控件?

我在同一个页面中使用了两个独立的RadAjaxPanels。一个面板包含一个TextBox和一个按钮。另一个包含一个RadGrid控件。当我点击面板#1中的按钮时,第二个面板消失了。我将visible=True放在了按钮单击事件中。

ASPX页面

代码语言:javascript
复制
    <div>
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        </telerik:RadScriptManager>

        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default">
        </telerik:RadAjaxLoadingPanel>
        <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1" Height="200px" Width="300px">
         <table><tr><td><asp:Label ID="Label1" runat="server" Text="Name"></asp:Label> </td>
        <td><%--<telerik:RadTextBox ID="RadTextBox1" runat="server">
            </telerik:RadTextBox>--%><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

            </td></tr>
            <tr>
                    <td>
                    </td>
                    <td>
                        <telerik:RadButton ID="RdbtnAdd" runat="server" Text="Submit" CausesValidation="true" 
                            ValidationGroup="AddButtonValidate" OnClick="RdbtnAdd_Click"
                            Width="75px">
                        </telerik:RadButton>
                    </td>
                </tr>
         </table>
        </telerik:RadAjaxPanel>
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel2" runat="server" Skin="Default">
        </telerik:RadAjaxLoadingPanel>

        <telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server" LoadingPanelID="RadAjaxLoadingPanel2" Height="200px" Width="300px">
         <table><tr><td><asp:Label ID="Label2" runat="server" Text="Name"></asp:Label> </td>
        <td><%--<telerik:RadTextBox ID="RadTextBox2" runat="server">
            </telerik:RadTextBox>--%><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
         </table>
        </telerik:RadAjaxPanel>
    </div>

代码隐藏:

代码语言:javascript
复制
 protected void RdbtnAdd_Click(object sender, EventArgs e)
        {
            Session["name"] = TextBox1.Text;
            //RadAjaxPanel2.Visible = true;
            TextBox2.Text = Session["name"].ToString();
        }
EN

回答 2

Stack Overflow用户

发布于 2012-09-28 03:33:26

您可以尝试将ajax管理器添加到您的页面。这将在您单击该按钮时强制执行ajax回发。

代码语言:javascript
复制
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RdbtnAdd">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadAjaxPanel1" LoadingPanelID="RadAjaxLoadingPanel1" />
                <telerik:AjaxUpdatedControl ControlID="RadAjaxPanel2" LoadingPanelID="RadAjaxLoadingPanel2" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

或者,当您单击按钮时,可以尝试在第二个面板上强制执行ajax回发。所以在你的按钮点击事件添加...

代码语言:javascript
复制
ScriptManager.RegisterStartupScript(Page, this.GetType, "updatePanel", "$find('" + RadAjaxPanel2.ClientID + "').ajaxRequestWithTarget('" + RadAjaxPanel2.UniqueID + "', '');", true)

这两种解决方案都应该有效。第二种方法只需要按钮单击事件中的一行,所以我会先试一试。

票数 2
EN

Stack Overflow用户

发布于 2012-09-27 20:22:58

可以,您可以拥有任意数量的RadAjaxpanel控件。但是,请注意,RadAjaxPanel的功能与UpdatePanel不同。一次只有一个RadAjaxPanel回发;但是,您可以调用客户端API ajaxRequest("arg");方法来刷新另一个。我从来没有遇到过一个面板消失的问题...我们可能需要查看一些代码才能进行调试。

还可以使用RadAjaxManager (或代理)定义当一个控件导致回发时应更新的AJAX控件。这样,当发生按钮单击时,您可以将更新链接到所有对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12616160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档