海贼精神  
骂别人不革命,便是革命者,则自己不做事,而骂别人的事做得不好,自然便是更做事者。 若与此辈理论,可以被牵连到白费唇舌,一事无成,也就是白活一世,于己于人,都无益处。 我现在得了妙法,是谣言不辩,诬蔑不洗,只管自己做事。 ——鲁迅1934年6月21日信

21天C# ASP.NET笔记

第一天:

ASP服务器控件.

 

Label控件

比较简单, 就是显示.

<asp:Label ID="Label1" runat="server" ie:Text="hehe" Mozilla:Text="Label"></asp:Label>

 

TextBox控件

显示或者输入文本

 

Code1 : TextBox控件在多行显示状态下限制最大字数, 包括屏蔽粘贴.

后台:

  protected void Page_Load(object sender, EventArgs e)

  {

    Content.Attributes.Add("onkeypress", "return ImposeInputMaxLength(this," + Content.MaxLength + ")");

    Content.Attributes.Add("oninput", "ImposePasteMaxLength(this," + Content.MaxLength + ")");

    Content.Attributes.Add("onpaste", "ImposePasteMaxLength(this," + Content.MaxLength + ")");

    Content.Attributes.Add("ondragenter", "ImposePasteMaxLength(this," + Content.MaxLength + ")");

    //对于其它了浏览器还需要进行更进一步的判断。

  }

前台:

  <script type="text/javascript" language="javascript">

    function ImposeInputMaxLength(obj,MaxLength)

    {

      return (obj.value.length < MaxLength);

    }

    function ImposePasteMaxLength(obj,MaxLength)

    {

 

    if(window.navigator.appName.indexOf("Netscape") > -1)

    {

      obj.value = obj.value.substr(0,MaxLength);

    }

    else

    {

      event.returnValue = false

      obj.value = ""

      }

}

</script>

    <asp:TextBox ID="Content" runat="server" TextMode="MultiLine" MaxLength="5" Rows="10"

      Columns="50"></asp:TextBox>

 

 

Code2 :  TextBox控件在客户端按回车后移至下一项TextBox, 最后项TextBox回车按钮单击事件.

后台:

    int TextBoxNum = 4;

    for (int i = 1; i <= TextBoxNum; i++)

    {

      if (i != TextBoxNum)

      {

        ((TextBox)form1.FindControl("TextBox" + i.ToString())).Attributes.Add("onkeydown",

          "TabNext(event,'0','" + ((TextBox)form1.FindControl("TextBox" + (1 + i).ToString())).ClientID + "')");

      }

      else

      {

        ((TextBox)form1.FindControl("TextBox" + i.ToString())).Attributes.Add("onkeydown",

   "TabNext(event,'" + Button2.ClientID + "','')");

      }

    }

 

前台:

  <script language="javascript" type="text/javascript">

  function TabNext(e,s1,s2)

  {

    if(window.event) // IE 浏览器

    {

      keynum = e.keyCode

    }

    else if(e.which) // Netscape/Firefox/Opera 浏览器

    {

      keynum = e.which

    }

 

    if(keynum == 13)

    {

      if(s1 == "0")

      {

        document.getElementById(s2).focus()

      }

      else

      {

        document.getElementById(s1).click()

      }

     

      if(window.event)

      {

        e.returnValue = false;

        e.cancelBubble = true;

      }

      else if(e.which)

      {

        e.preventDefault()

      }

    }  

  }

  </script>

 

    文本框一:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />

    文本框二:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />

    文本框三:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />

    文本框四:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />

    <asp:Button ID="Button1" runat="server" Text="按钮一" OnClick="Button_Click" />

    <asp:Button ID="Button2" runat="server" Text="按钮二" OnClick="Button_Click" />

    <br />

    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>

 

Code3 : 服务器后台设置得到TextBox控件焦点

TextBox2.Focus();

 

 

Button控件:

引发客户端消息, 和传送页面引用接收

 

Cade 1 : 触发使用客户端脚本文件, PostBack页面到page2 PreviousPage

前台 page1:

  <script language="javascript" type="text/javascript">

    function ClientMethod()

    {

      alert("客户端事件")

    }

  </script>

   

<asp:Button ID="Button1" runat="server" OnClientClick="ClientMethod()" Text="Button1"

      PostBackUrl="~/ServerControl/Button2CS.aspx" />

前台page2:

  protected void Page_Load(object sender, EventArgs e)

  {

    Label1.Text = "<li>" + ((Label)PreviousPage.FindControl("Label1")).Text;

    Label1.Text +=  "<li>您输入的值:" + ((TextBox)PreviousPage.FindControl("TextBox1")).Text;

  }

 

 

Code 2 :使用GetPostBackEventReference返回客户端控件的回发事件

<%@ Page Language="C#" %>

<script runat="server">

  protected void Button_Click(object sender, EventArgs e)

  {

    Response.Write("点击的是:" + ((Button)sender).Text);

  }

  protected void Page_Load(object sender, EventArgs e)

  {

    HtmlInput.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(Button1,""));

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

  <title>无标题页</title>

</head>

<body>

  <form id="form1" runat="server">

    <input type="button" id="HtmlInput" runat="server" value="自定义按钮" />

    <asp:Button ID="Button1" runat="server" Text="Button1"

    OnClick="Button_Click" UseSubmitBehavior="False" />

    <asp:Button ID="Button2" runat="server" OnClick="Button_Click"

    Text="Button2" UseSubmitBehavior="true" />

  </form>

</body>

</html>

 

Literal控件

不在客户端产生标记, 适合替代label显示信息

 

Code 1 : 使用Literal控件显示一个随机变换的字符串广告条

<%@ Page Language="C#" %>

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)

  {

    string[] ArrServerName = { ".NET 开发者园地", "播客站点", "学习社区" };

    string[] ArrServerUrl = {

                              "http://dotnet.aspx.cc/",

                              "http://blog.csdn.net/net_lover/",

                              "http://community.csdn.net/"

                            };

    string tmp = "";

    for (int i = 0; i < ArrServerName.Length; i++)

    {

      tmp += "SiteName[" + i.ToString() + "] = '" + ArrServerName[i].Replace("'", "\\'") + "';"

            + System.Environment.NewLine;

      tmp += "SiteUrl[" + i.ToString() + "] = '" + ArrServerUrl[i].Replace("'", "\\'") + "';"

            + System.Environment.NewLine;

    }

    Literal1.Text = tmp;

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

  <title>Literal 控件</title>

  <script type="text/javascript" language="javascript">

    var SiteName = new Array();

    var SiteUrl = new Array();

    <asp:Literal ID="Literal1" runat="server"></asp:Literal>

    window.onload = function()

    {

      ShowSite();

      window.setInterval("ShowSite()",3000);

    }

    function ShowSite()

    {

      var i = Math.floor(Math.random() * SiteName.length);

      document.getElementById("ShowMsg").innerHTML = "<a href='"

                + SiteUrl[i] + "'>" + SiteName[i] + "</a>";

    }

  </script>

</head>

<body>

  <form id="form1" runat="server"></form>

  <div id="ShowMsg"></div>

</body>

</html>

 

 

HyperLink控件

显示一个字符串或者图片连接

 

Code1 : HyperLink控件不提供图片大小调整. 使用重写呈现事件加入图片并且调整图片大小

<%@ Page Language="C#" %>

 

<script runat="server">

  protected void HyperLink1_PreRender(object sender, EventArgs e)

  {

    Image img = new Image();

    img.Width = HyperLink1.Width;

    img.Height = HyperLink1.Height;

    img.ImageUrl = HyperLink1.ImageUrl;

    img.Attributes.Add("border", "0");

    HyperLink1.Controls.AddAt(0, img);

    HyperLink1.ImageUrl = System.String.Empty;

  }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

  <title>HyperLink 服务器控件</title>

</head>

<body>

  <form id="form1" runat="server">

    <asp:HyperLink ID="HyperLink1" runat="server" Width="239" NavigateUrl="http://dotnet.aspx.cc/"

      ToolTip=".NET 开发者园地" ImageUrl="~/images/banner.gif"

      OnPreRender="HyperLink1_PreRender"/>

    <br />

    <asp:HyperLink ID="HyperLink2" runat="server" Width="239" NavigateUrl="http://dotnet.aspx.cc/"

      ToolTip=".NET 开发者园地" ImageUrl="~/images/banner.gif"></asp:HyperLink>

  </form>

</body>

</html>

 

鼠标移上HyperLink的时候变换图片

<%@ Page Language="C#" %>

<script runat="server">

  protected void Page_Load(object sender, EventArgs e)

  {

    string MouseOver = Page.ResolveUrl("~/images/logo.gif");

    string MouseOut = Page.ResolveUrl("~/images/banner.gif");

    HyperLink1.Attributes.Add("onmouseover", "this.childNodes[0].src='" + MouseOver + "'");

    HyperLink1.Attributes.Add("onmouseout", "this.childNodes[0].src='" + MouseOut + "'");

  }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

  <title>HyperLink 鼠标事件</title>

</head>

<body>

  <form id="form1" runat="server">

    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="http://dotnet.aspx.cc/"

      ImageUrl="~/images/banner.gif" Text=".NET 开发这园地"></asp:HyperLink>

  </form>

</body>

</html>

 

 

Image控件

显示图片

<p style="FONT-SIZE: 12pt; COLOR: #ffff99; FONT-FAMILY: Georg
posted on 2007-01-09 23:30  阿鸟  阅读(724)  评论(0)    收藏  举报