需要从按钮单击事件在 radWindow 中打开网页。尝试从客户端执行此操作,但它出现然后立即消失。我认为按钮单击导致回发到服务器...因此,我目前正在尝试使用下面发布的服务器端代码 (C#) 解决此问题。
问题:需要打开 rad 窗口而不将其添加到窗口集合,或者在关闭时将其从窗口集合中删除。关闭 rad 窗口时,它们不会从窗口集合中删除。这会导致按下新按钮的次数打开相同的窗口。第一次单击打开一个窗口,第二次单击新按钮时打开两个窗口,依此类推...有什么想法吗?
C# - 打开多个页面
RadWindow newWindow = new RadWindow();
newWindow.NavigateUrl = "WebPage.aspx";
newWindow.Top = Unit.Pixel(22);
newWindow.VisibleOnPageLoad = true;
newWindow.Modal = true;
newWindow.Left = Unit.Pixel(0);
newWindow.Height = 530;
newWindow.Width = 1000;
winMgr.Windows.Add(newWindow);
JavaScript - 回发问题?页面打开并立即消失。
var oManager = '<%=winMgr.ClientID %>';
var oManager = window.radopen("WebPage.aspx", null);
oManager.setSize(1000, 530); //Width, Height
oManager.center();
oManager.SetActive();
感谢您的帮助!
根据艾莉森的解决方案,单击按钮时会显示rad窗口;但会立即再次消失。我尝试使用以下代码。在我的情况下,它工作正常。
<script type="text/javascript">
function openRadWin()
{
radopen("http://www.google.com", "RadWindow1");
}
</script>
<asp:Button ID="Button1" Text="Show Window" runat="server" OnClientClick="openRadWin();" />
希望,这对某人有用。
您需要在单击按钮后返回 false。
尝试将按钮/JavaScript 设置为类似于以下内容的内容:
按钮 (aspx)
<asp:Button ID="btnDoSomething" runat="server" Text="Do Something" OnClientClick="return myFunction();" />
JavaScript
function myFunction() {
var oManager = window.radopen("WebPage.aspx", null);
oManager.setSize(1000, 530); //Width, Height
oManager.center();
oManager.SetActive();
return false;
}
首先 - 基础知识:)您想在客户端(通过 JavaScript)还是在服务器上打开 RadWindow?
案例 1 - 在客户端上:Alison 是对的 - 如果要在客户端上打开 RadWindow(并且没有挂接到该回发元素的服务器端事件),则需要取消回发。这是通过使用OnClientClick="return myFunction();"和函数本身末尾的"return false;"(如 Alison 建议的那样),或者:
OnClientClick="myFynction(); return false;"
取消客户端单击时,不应有回发。
情况 2 - 在服务器上:通过将 VisibleOnPageLoad 设置为 true 从服务器显示 RadWindow。请注意,RadWindow/RadWindowManager在回发中保持其状态,其中包括所有服务器端属性,包括VisibleOnPageLoad。话虽如此,如果您只想显示一次 RadWindow,您还需要为您正在使用的 RadWindowManager 设置 EnableViewState=false。