任何人都可以帮我将这个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>");
}
答案 0 :(得分: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,您可以随时使用javascript绑定onclick。
例如,如果你有jquery库,你可以这样做:
$(document).ready(function() {
$("#button1").on("click","window.open('Print.aspx','PrintMe','height=300px,width=300px,scrollbars=1'));
});
答案 1 :(得分: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;
}
答案 2 :(得分:1)
您可以使用<%=Button1.ClientID%>
使用jQuery你会得到:
$(function() {
$("#<%=Button1.ClientID%>").click(function() {
window.open(...)
});
});
当然,也许你不想使用服务器控件并保持客户端的按钮和行为。
<input type='button' value='Button' id='Button1' />
然后使用与上面相同的结构:$("Button1").click(...)