ASP C#Postback正在杀了我

时间:2017-02-10 20:59:58

标签: c# asp.net

我有一个按钮。我按下按钮。将打开一个新窗口。是啊。但是,在后台,带有按钮的页面正在重新加载。如何让按钮仅打开窗口而不重新加载主页?

    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);
}

2 个答案:

答案 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()以防止发生默认操作(提交页面)。