【问题标题】:How to close radwindow manager form server side button click如何关闭 radwindow 管理器表单服务器端按钮单击
【发布时间】:2012-06-27 13:37:47
【问题描述】:

大家好,我设计了一个 radwindow 管理器,它有一个下拉菜单、一个文本框和一个按钮,它们位于更新面板内。

一切正常,但单击按钮时,我将关闭窗口管理器,如下所示

RadWindowManager1.Windows[0].VisibleOnPageLoad = false;

但这不起作用,谁能帮帮我这是我的设计和代码

<telerik:RadWindowManager ID="RadWindowManager1" runat="server" Behavior="Default"
        InitialBehavior="None">
        <Windows>
            <telerik:RadWindow ID="RadWindow1" runat="server" Behaviors="Default" InitialBehaviors="None"
                OpenerElementID="btn" Width="650" Height="480" VisibleOnPageLoad="false">                    
                <ContentTemplate>
                    <asp:UpdatePanel ID="up" runat="server" OnUnload="up_Unload">
                    <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="rdcmb" EventName="SelectedIndexChanged" />
                    <asp:AsyncPostBackTrigger ControlID="radbtn" EventName="Click" />
                    </Triggers>
                        <ContentTemplate>
                            <telerik:RadComboBox ID="rdcmb" runat="server" AutoPostBack="true" OnSelectedIndexChanged="sel">
                                <Items>
                                    <telerik:RadComboBoxItem Text="One" Value="One" />
                                    <telerik:RadComboBoxItem Text="Two" Value="Two" />
                                    <telerik:RadComboBoxItem Text="Three" Value="Three" />
                                    <telerik:RadComboBoxItem Text="Four" Value="Four" />
                                </Items>
                            </telerik:RadComboBox>
                            <telerik:RadTextBox ID="rdText" runat="server">
                            </telerik:RadTextBox>
                            <telerik:RadButton ID="radbtn" runat="server" Text="Save" OnClick="btn_Click">
                            </telerik:RadButton>
                        </ContentTemplate>
                    </asp:UpdatePanel>
                </ContentTemplate>
            </telerik:RadWindow>
        </Windows>
    </telerik:RadWindowManager>
    <telerik:RadButton ID="rdbtnwhAnother" Text="Add WithHolding" runat="server" ButtonType="LinkButton"
        OnClick="rdbtnwhAnother_Click">
    </telerik:RadButton>

代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        RadWindowManager1.Windows[0].VisibleOnPageLoad = false;
    }
}

protected void rdbtnwhAnother_Click(object sender, EventArgs e)
{
    RadWindowManager1.Windows[0].VisibleOnPageLoad = true;
}

protected void btn_Click(object sender, EventArgs e)
{
    RadWindowManager1.Windows[0].VisibleOnPageLoad = false;
}

protected void sel(object sender, EventArgs e)
{
    rdText.Text = rdcmb.SelectedItem.Text;
}

protected void up_Unload(object sender, EventArgs e)
{
    /* Cast sender as an updatePanel, and use reflection to invoke * * the page's scriptmanger registerUpdatePanel() method * * */
    //RadWindowManager1.Windows[0].VisibleOnPageLoad = false;
    UpdatePanel aUpdatePanel = sender as UpdatePanel;

    MethodInfo m = (
        from methods in typeof(ScriptManager).GetMethods(
            BindingFlags.NonPublic | BindingFlags.Instance
            )
        where methods.Name.Equals("System.Web.UI.IScriptManagerInternal.RegisterUpdatePanel")
        select methods).First<MethodInfo>();

    m.Invoke(ScriptManager.GetCurrent(aUpdatePanel.Page), new object[] { aUpdatePanel });
}

【问题讨论】:

    标签: asp.net telerik radwindow


    【解决方案1】:
    <script type="text/javascript">
    
       function getRadWindow() {
          var oWindow = null;
          if (window.radWindow) oWindow = window.radWindow;
          else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
          return oWindow;
       }
    
       function clientClose(arg) {   
          getRadWindow().close(arg);
       }
    
    </script>
    
    <telerik:RadButton ID="radbtn" runat="server" Text="Save" OnClick="btn_Click">
    </telerik:RadButton>
    
    protected void btn_Click(object sender, EventArgs e)
    {         
       string script = "clientClose('');"; 
    
       ScriptManager.RegisterStartupScript(Page, typeof(Page), 
          "closeScript", script, true);
    }
    

    【讨论】:

    • 谢谢,这让我为使用“radopen”打开的窗口而疯狂
    猜你喜欢
    • 2013-12-15
    • 2013-12-10
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多