asp.net 怎么调用自定义的JS函数<script language="javascript">
function postdntloginform()
{
//函数体} </script>页面有个BUTTON,单击事件:
protected void Button1_Click(object sender, EventArgs e)
{ if(条件)//满足条件才执行
{ Response.Write("<script>postdntloginform();</script>");//执行自定义JS函数,这样写不执行
}
}
高手指点下,谢谢
function postdntloginform()
{
//函数体} </script>页面有个BUTTON,单击事件:
protected void Button1_Click(object sender, EventArgs e)
{ if(条件)//满足条件才执行
{ Response.Write("<script>postdntloginform();</script>");//执行自定义JS函数,这样写不执行
}
}
高手指点下,谢谢
asp.net服务器控件是微软为了方便开发者开发而推出的一系列控件,它们都以类似的方式出现在Visual Studio 2005的源视图里,*代表了控件名,如就表示这是一个Button控件。asp.net服务器控件除了提供HTML服务器控件所能提供的功能之外,还有很多功能更为复杂的控件。这些控件可以分为简单控件、容器控件、数据绑定控件、数据源控件和数据验证控及用户自己根据自己业务需要将一些控件组合在一起组成的用户控件等。asp.net控件的特点与HTML服务器控件类似,也有如下特点:(1)asp.net服务器控件必须有一个在当前页面中唯一的ID属性和runat=”server”属性;(2)asp.net服务器控件必须放在服务器端表单中;(3)asp.net服务器控件最终会被解释成普通HTML标记发送到客户端浏览器。本文主要介绍以下控件:Button控件TextBox控件Web服务器控件的特殊客户端事件FileUpload控件Literal控件Panel控件PlaceHolder控件
<script language="javascript">
function postdntloginform()
{
//函数体 } </script> 页面有个BUTTON,单击事件:
C# codeprotected void Button1_Click(object sender, EventArgs e)
{ if(条件)//满足条件才执行
{ Page p = (Page)System.Web.HttpContext.Current.Handler;
p.RegisterStartupScript(" ", "<script type='text/javascript'>你的函数名</script>");
}
}
这样试试 ! 你那样不行!~
function postdntloginform()
{
//函数体 } </script>
<asp:Button ID="btnOK" runat="server" Text="Click" OnClientClick="javascript:return postdntloginform()" CssClass="zhoufoxcn" />
OnClientClick这个属性就是要调用的客户端方法名。
RegisterStartupScript这个方法是能用,但是好象微软非常不建议,还有其他办法吗?
protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes["onclick"] = "return jstest();"; //jstest()是js函数
}
2直接在click事件中调用
protected void Button1_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "clear", "<script>jstest()</script>");//jstest()是js函数
}
另外就是使用this.RegisterStartupScript()。this是page,就是你的后台代码,另外一个差不多的就是RegisterScriptBlock(),他们的的参数自己查下。差别就在于:RegisterStartupScript注册的语句是在客户端代码最后才执行,而RegisterScriptBlock注册的代码是在开始时候执行。
protected void Button1_Click(object sender, EventArgs e)
{ if(条件)//满足条件才执行
{
this.ClientScript.RegisterStartupScript(typeof(string),"js","postdntloginform();",true);
}
}
我是绝对会把“使用Response.Write()写出”的人排除在合格asp.net程序员之外的。因为asp.net开发需要有至少有一点html素质做基础的(整个asp.net就是踩着html/javascript才搭建起来的高级平台)。如果一个合格web程序员是会去看客户端html源代码并且害怕或者嘲笑Response.Write()所破坏掉的html规则的。
这样看行不?
Button1.Attributes.Add("onClick", "postdntloginform();")
否则
protected void Button1_Click(object sender, EventArgs e)
{
if(条件)//满足条件才执行
{
ClientScript.RegisterStartupScript(this.GetType(), "clear", "<script>postdntloginform();</script>");//jstest()是js函数
}
}
<script type ="text/javascript" event="onkeydown" for="document">
function openwin()
{
window.open ("http://qdumh.qd.sd.cn/");
}
</script> 调用
<a href ="#" onclick="openwin()">卫生部</a>
这个我用的最多,也很好用,试试这个吧
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/你的js方法.js" />
</Scripts>
</asp:ScriptManagerProxy>
....来加载自定义js方法。
protected void Button1_Click(object sender, EventArgs e)
{ if(条件)//满足条件才执行
{Page.ClientScript.RegisterStartupScript(Me.GetType(), "clientScript", postdntloginform(),true )
}
}
Response.Write("<script>window.alert('" + s + "');</script>");
注: 无论代码写在哪里,最后生成的HTML代码,输出的字符串都在整个页面的最上面,经常会导致整个页面显示空白,这是因为,在您点击alert()确定按钮之前,下面的代码尚未执行。string text = "ok sa you na ra";
Page.RegisterStartupScript("keyName", "<script>window.alert('" + s + "');</script>");
注: 当然,该语句可以解决上面的问题,即:代码写在哪里,就生成在哪里!
CLIENTSCRIPT.REGISTERSTARTUPSCRIPT