2012-01-13 6 views
0

RadWindowをウィンドウ自体から(javascript経由で)閉じるためにRadButtonを使用しようとしています。ウィンドウを閉じるためにスクリプトを呼び出すことは可能ですか?ここではjavascriptのです:RadWindowをRadButtonで閉じる

function getRadWindow() 
{ 
    var oWindow = null; 
    if (window.radWindow) oWindow = window.radWindow; 
    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; 
    return oWindow; 
} 

function closeWindow() 
{ 
    getRadWindow().close(); 
} 

そして、ここでのボタンです:私は、このようなアンカータグとして純粋なHTML要素を使用している場合、私は、スクリプトはのみ動作しますすべてのものを試してみました

<telerik:RadButton ID="CancelButton" runat="server" OnClick="closeWindow();" CssClass="clicker" Text="Cancel" UseSubmitBehavior="False" EnableEmbeddedScripts="false" CausesValidation="False" RegisterWithScriptManager="False"> 
</telerik:RadButton> 

。 OnClickイベントを使用すると、ウィンドウが開いたときに次のエラーが発生します。Compiler Error Message: CS1026:) expected.

私に何か不足していますか?

ありがとうございます!

答えて

2

RadButtonから関数を呼び出す方法は、そのOnClientClickedイベントまたはOnClientClickingイベントのいずれかを使用することです。それでは、JavaScript関数の名前だけを括弧を付けずに渡す必要があります。 OnClickはサーバーハンドラのプロパティです。通常のaspボタンの場合も同様です。これを試してみてください:

<telerik:RadButton ID="CancelButton" runat="server" OnClientClicked="closeWindow" AutoPostBack="false" CssClass="clicker" Text="Cancel" UseSubmitBehavior="False" EnableEmbeddedScripts="false" CausesValidation="False" RegisterWithScriptManager="False"> 

注AutoPostBackプロパティには、ポストバックを防ぐために、falseに設定されています。

3

私はこの回答を改善しているかどうかはわかりませんが、わかりやすくしています。私は、メインページから開かれたラドンウィンドウを持っています。 radwindowはJavascriptではなく、Code Behind(C#)で開かれています。私のユーザがRadWindow上のSaveボタンをクリックすると、いくつかの論理タスクが実行され、次にradwindow自体が閉じられます。あなたは、単にを行う必要があります。あなたにthiseコードブロックを置き

はASPXをRadWindow .....

<telerik:RadCodeBlock runat="server" ID="rcb1"> 
<script language="javascript" 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 CloseDialog(button) 
{ 
GetRadWindow().close(); 
} 

</script> 
</telerik:RadCodeBlock> 

あなたは事前に近いロジックを実行した後、あなたのRadWindowのボタンクリックで、このコードを入れて(同じボタンその他のロジックがウィンドウを閉じます)

C# ClientScript.RegisterStartupScript(typeof(string)、 ""、 "CloseDialog();");

OR

VB ClientScript.RegisterStartupScript(Me.GetType()、 ""、 "CloseDialog();")

あなたは分離コードからradwindowを開く方法を迷っている場合は、ここでどのように

RadWindow window1 = new RadWindow(); 
// Set the window properties 
window1.NavigateUrl = "winStrengthChart.aspx?EMPLOYIDNAME=" + parmString; 
window1.ID = "RadWindow1"; 
window1.Width = 800; 
window1.Height = 650; 
window1.VisibleStatusbar = false; 
window1.Behaviors = Telerik.Web.UI.WindowBehaviors.Close | Telerik.Web.UI.WindowBehaviors.Resize | Telerik.Web.UI.WindowBehaviors.Move; 
window1.VisibleOnPageLoad = true; // Set this property to True for showing window from code 
rwm1.Windows.Add(window1); 
this.Form1.Controls.Add(window1); 

...そしてもちろん、あなたはウィンドウを開き、メインページ上の基本的なRadWindowManager必要があります:私はそれをやった

<telerik:RadWindowManager ID="rwm1" runat="server"> 
<Windows> 
</Windows> 
</telerik:RadWindowManager> 

私は誤って私を修正してくださいこれは動作するはずです。

おかげ

+0

'そしてもちろん、あなたがウィンドウを開き、メインページの基本的なRadWindowManagerが必要に:私たちはもっとして1つの画面を持っていない限り、' RadWindowManagerは必要ありません。 –

関連する問題