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控件
显示图片

浙公网安备 33010602011771号