2012-06-26 74 views
4

大家好我設計了一個radwindow管理器,它將有一個下拉菜單和一個文本框和一個放置在更新面板中的按鈕。如何關閉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 }); 
} 
+0

GetRadWindow()。Close(); –

回答

4
<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); 
} 
+0

謝謝,這讓我瘋狂的開着'radopen' –

相關問題