Asp.net学习笔记 页面加载时候的事件顺序。
preinit
init
initcomplete
preload
load
loadcomplete
prerender
prerendercomplete
unload 判断是否第一次加载 if (!ispostback)
//生成脚本。
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('我不知道')",true); //这个是在底
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "block", "alert('block里面')", true); //这个是在头
Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "idonknow", @"http://www.baidu.com"); //这个是一个链接
另外想问下asp.net的回调是不是ajax呢。像是,又不像。
Asp.net 学习笔记
Html 控件转换成 服务器控件只需要加 runat=server 再写上id 就OK,因为这个问题自己
弄了很久,在写事件的时候写onserverclick 但是这里面如果写了onclick 我运行不了。不
知道是为什么,反正web服务器控件里面有onclientclick 事件了。
另外就是document.forms[“表单名”],教程上面一直写的是form0,找的例子也是,结果
VS 里面建的都是form1 ,因为这个问题弄了好久,本来以为form0 相当于是第一个form,
但是不是这样啊,不晓得当时脑袋是杂写的,要是ID号的话也该是int类型,string 类型
的就该是名字了。
自学好恼火。不过还是推荐vs2010,至少有点智能提示,虽然不完全,用vs2008一直以为
自己是打错了,因为没有提示的。
////一个关于回调的例子。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"
Trace="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<script type="text/javascript">
function getnumber()
{
UseCallBack();
}
function GetRandomNumberFormServer(TextBox1,context)
{
document.forms["form1"].TextBox1.value=TextBox1;
}
</script>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" value="获取一个随机数" onclick=getnumber() />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
//.CS文件
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page ,ICallbackEventHandler
{
private string _callbackResult = null;
protected void Page_Load(object sender, EventArgs e)
{
string cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg",
"GetRandomNumberFormServer", "context");
string cbScript = "function UseCallBack(arg,context)" + "{" + cbReference + ";" + "}";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UseCallBack", cbScript,
true);
Response.Write(this.GetType().ToString());
}
#region ICallbackEventHandler 成员
public string GetCallbackResult()
{
return _callbackResult;
}
public void RaiseCallbackEvent(string eventArgument)
{
Random rmd = new Random();
_callbackResult = rmd.Next().ToString();
}
#endregion
}
////////string.empty null "" 这三者的区别。 string.empty 就相当于是 "", 但和null 不一样。
null是个值。 //这话是我说的,以下试出来的。建了一个TextBox1 和 Button1 的控件.
如果是null 提示的是"字符串不能够为空",换成其它两者是"字符串初始化不能够为空";
protected void Button1_Click(object sender, EventArgs e)
{
if (this.TextBox1.Text !=null)
{
if (this.TextBox1.Text.Trim() != string.Empty)
{
Response.Write(this.TextBox1.Text);
}
else
{
Response.Write("字符串不能够为空");
}
}
else
{
Response.Write("字符串初始化不能够为空");
}
}
////下面的示例是多个控件调用一个程序处理。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnCommand="Button_Command"
CommandName="Button1"/>
<asp:Button ID="Button2" runat="server" Text="Button" OnCommand="Button_Command"
CommandName="Button2" />
<asp:Button ID="Button4" runat="server" Text="Button" OnCommand="Button_Command"
CommandName="Button3"/>
<asp:Button ID="Button3" runat="server" Text="Button" OnCommand="Button_Command"
CommandName="Button4"/>
</div>
</form>
</body>
///.CS文件
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button_Command(object sender,System.Web.UI.WebControls.CommandEventArgs e)
{
switch (e.CommandName)
{
case ("Button1"):
Response.Write("1.Click");
break;
case ("Button2"):
Response.Write("2.Click");
break;
case ("Button3"):
Response.Write("3.Click");
break;
case ("Button4"):
Response.Write("4.Click");
break;
}
}
}
///////下面的示例是一个关于数据绑定的。。绑定的是XML 文件。。这里自己也弄了十多分钟,结果是自己的XML 文件写错了。。
<?xml version="1.0" encoding="utf-8" ?>
<Names>
<Name
Title="小王" />
<Name
Title="小张"/>
</Names>
直接增加数据绑定就OK,XPath 就是设置节点。这里要用Title ,Xpath 就设置成Names/Name
////Html 服务器控件和Web服务器控件. 里面如果是serverclick事件就直接就是方法名称,如果是客户端的是 "return 方法名();".比如
<input id="Button2" type="button" value="客户端" runat=server onserverclick="ServerDo" onclick="return Button2_onclick();" />
<asp:Button ID="Button3" runat="server" Text="Button" onclick="Button3_Click" OnClientClick="return Button2_onclick();"/>
//.cs 文件 ,文件上传的例子.不完善
protected void Button1_Click(object sender, EventArgs e)
{
if (this.FileUpload1.HasFile)
try
{
FileUpload1.SaveAs(string.Format(@"c:\update\{0}", FileUpload1.FileName));
this.Label1.Text = "File name:" + FileUpload1.PostedFile.FileName + "<br>" + "
长度:" + FileUpload1.PostedFile.ContentLength.ToString() + "属性:" +
FileUpload1.PostedFile.ContentType.ToString();
//System.IO.Stream myStream;
//string ok = "sadfasdf";
//char[] arrays;
//this.Label1.Text = "File name:" + FileUpload1.PostedFile.FileName + "<br>" +
"长度:" + FileUpload1.PostedFile.ContentLength.ToString() + "属性:" +
FileUpload1.PostedFile.ContentType.ToString();
//FileUpload1.SaveAs(string.Format(@"c:\update\{0}", FileUpload1.FileName));
////this.Label1.Text = "File name:" + FileUpload1.PostedFile.FileName + "<br>"
+ "长度:" + FileUpload1.PostedFile.ContentLength.ToString() + "属性:" +
FileUpload1.PostedFile.ContentType.ToString();
//myStream = FileUpload1.FileContent;
//arrays = myStream.ToString().ToCharArray(); //本来在书上是直接就是用的
ToArray();但是我这不知道怎么没有这个。最后换成CharArray了。
}
catch (Exception ex)
{
this.Label1.Text = "Error:" + ex.Message;
}
else
{
this.Label1.Text = "没有文件上传";
}
}
//.aspx 文件
<asp:FileUpload ID="FileUpload1" runat="server" /><br>
<asp:Label ID="Label1" runat="server"></asp:Label><br>
<asp:Button ID="Button1"
runat="server" Text="提交" onclick="Button1_Click" />