0

谁能帮我把这个 C# 代码转换成脚本?

  <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

protected void Button1_Click(object sender, EventArgs e)
    {
        Session["ctrl"] = Panel1;
        ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language=javascript>window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1');</script>");
    }
4

3 回答 3

1

如果您只是想让这成为正常的 html / javascript,它只是一个按钮的 onclick 事件。但是,通过将其更改为 javascript,您将丢失会话变量“ctrl”的集合。这可能会被应用程序的其他部分使用。如果您不在乎,那么您可以更改为常规的 html 按钮。如果您确实关心会话变量,那么您必须使用诸如 c# 之类的服务器端代码来设置会话变量,例如您在上面发布的 c# 代码。

我会把它读成:

<input type="button" id="button1" name="button1" value="Button" onclick="javascript:window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1');" />

如果你想整理你的 html 代码,你也可以将 click 事件包装到一个函数中。

如果您不喜欢在按钮中包含 javascript,您可以随时将 onclick 与 javascript 绑定。

例如,如果您有 jquery 库,您可以这样做:

$(document).ready(function() {
      $("#button1").on("click","window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1'));
});
于 2013-08-02T15:38:25.740 回答
1

在aspx页面创建方法

<script type="text/javascript">
    function openPopUp()
    {
    window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1');
    }
</script>

然后你在按钮上做

<asp:Button ... onClientClick="openPopUp() onClick="btnClick"/>

您可以同时拥有客户端事件和服务器端事件。

protected void btnClick(object sender, EventArgs e)
    {
        Session["ctrl"] = Panel1;
    }
于 2013-08-02T15:39:47.923 回答
1

您可以通过以下方式获取 Html DOM ID<%=Button1.ClientID%>

使用 jQuery 你会得到:

$(function() {
    $("#<%=Button1.ClientID%>").click(function() {
        window.open(...)
    });
});

当然,也许您不想使用服务器控件并将按钮和行为保留在客户端。

<input type='button' value='Button' id='Button1' />

然后使用与上面相同的构造:$("Button1").click(...)

于 2013-08-02T15:41:41.693 回答