2013-08-02 66 views
0

任何人都可以帮助我将此C#代码转换为脚本?转换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>"); 
    } 

回答

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代码。

如果您不喜欢在按钮中使用JavaScript,您可以在手之前始终使用JavaScript将onclick绑定。

例如,如果你拥有jQuery库,你可以这样做:

$(document).ready(function() { 
     $("#button1").on("click","window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1')); 
}); 
+0

谢谢Avitus,它帮助,但如何控制点击事件的会话CTRL,请大家帮忙一样,“PANEL1”已成立的文本框和标签。 – gs11111

+1

这个答案的最好的部分是你可能会失去控制 –

+0

失去控制我甚至没有看到。为了设置会话变量,您必须在服务器端对诸如您发布的C#代码进行操作。 – Avitus

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; 
    } 
+0

谢谢Nick.I'm正在控制click事件上的会话变量。请帮助一样。 – gs11111

+0

检查我的更新回复。你可以有两个事件。一个用于服务器端,一个用于客户端 – Nick

1

您可以<%=Button1.ClientID%>

使用jQuery获得HTML DOM ID,你会得到:

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

当然,也许你不想使用服务器的控制和保持按钮和客户端的行为。

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

然后用上述同样的结构:$("Button1").click(...)