我有一个按钮。我按下按钮。将打开一个新窗口。是啊。但是,在后台,带有按钮的页面正在重新加载。如何让按钮仅打开窗口而不重新加载主页?
protected void btnLookup_Click(object sender, EventArgs e)
{
// open a pop up window at the center of the page.
ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'your_page.aspx', null, 'height=700,width=760,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);
}
答案 0 :(得分:3)
当你写这样的东西时:
<ASP:Button runat="server">
...你不是在写HTML。您正在编写定义服务器端控件的XML,它具有某些功能。
每当您想要“普通”HTML标记时,只需编写没有ASP前缀且没有runat=server
的内容:
<button>My Button</button>
如果您想要不提交按钮,则需要set the button type(在某些浏览器中默认为“提交”)。所以现在我们有了这个:
<button type="button">My Button</button>
如果您想附加脚本,可以将其添加到标记中:
<button type="button" onclick="var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'your_page.aspx', null, 'height=700,width=760,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );">My Button</button>
将脚本分开可能更清晰:
<button type="button" onclick="OpenSomeWindow()">My button</button>
然后使用RegisterClientScript定义OpenSomeWindow
,或将其放在页面上包含的外部.js文件中。
答案 1 :(得分:1)
按钮类型=按钮将使其无法提交页面。您也可以使用jquery进行单击以打开窗口。在jquery中,您可以执行e.preventDefault()以防止发生默认操作(提交页面)。