站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题分享:aspx页面javascript的几个trick

分享:aspx页面javascript的几个trick

摘要: 分享:aspx页面javascript的几个trick
<textarea readonly style="border:none;font-family:Courier New;line-height:150%;width:760px;overflow-y:visible"> 1、一般而言,如果想给aspx页面上的web form control加上一些javascript的特性,可以用Attributes.Add来实现。

  例如,对TextBox txt,可以:
txt.Attributes.Add("onclick", "fcn0();");
  那么,在web页面上click它的时候,就会调用fcn0这个javascript函数。

1.1、例外的情况是,对于IDE无法辨认的属性的解析。

  比如对一个RadioButton rbt,IDE不能辨认onclick这个属性,那么,类似上面的语句,
rbt.Attributes.Add("onclick", "fcn1(this);");
在.net framework 1.1中,将解析成
<input type=radio id=rbt onclick="fcn1(this);">...
而在在.net framework 1.0中,将解析成
<input type=radio id=rbt>...
注意到,fcn1中,参数this对应的对象就不同了。这是一个细微的差别。

2、而对于HTML control,需要多做一点事情。

  在设计aspx页面的时候,从工具栏拖一个web form control,比如说,TextBox到页面,会发生两件事:
    一、aspx页面多一句

    二、code behind多一句
protected System.Web.UI.WebControls.TextBox TextBox1;
  如果是html control,那么,第一句中,runat="server"不会出现,而第二局不会被自动添加。
  因此,如果要访问html control,需要
    一、aspx页面的语句中添加runat="server"属性,成为
<input style="..." type="text" size="9" id="htxt" runat="server">
    二、code behind中显示的声明
protected System.Web.UI.HtmlControls.HtmlInputText htxt;
  注意到第一句的id和第二句的变量名是相同的。

2.1、注意到,前面System.Web.UI.WebControls.TextBox对应的html control是System.Web.UI.HtmlControls.HtmlInputText,对应的html的tag是<input type="text">,

相应的,html的tag <body>对应的html control是
public System.Web.UI.HtmlControls.HtmlGenericControl myBody;

2.2、有一点例外的是html的<form> tag对应的onsubmit的事件。看这样一个aspx页面

<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="TestCs.WebForm2" %>
HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<head>
WebForm2




<script language="javascript">
function fcn1()
{
prompt("hi", "fcn1");
}
</script>
</head>
<body MS_POSITIONING="GridLayout">
<form id="WebForm2" method="post" runat="server" onsubmit="fcn1();">


a
b
c

</form>
</body>

内容很简单,定义了一个javascript函数fcn1,放了一个Button Button1和一个autopostback的Dropdownlist DropDownList1,运行它,可以看到:点击Button1,会先执行fcn1然后postback,而选择DropDownList1的不同选项,将只会postback,而不会触发fcn1。

  微软autopostback=true的webcontrol实现postback,原理是这样的:

    一、如果此aspx页面有autopostback=true的webcontrol,那么会写下面一段javascript语句定义一个叫__doPostBack的javascript函数。

<script language="javascript">

</textarea>
↑返回目录
前一篇: mshtml:javascript为HTML文件中的Select添加option
后一篇: javascript 用点滴 (二)