ASP.Net前臺(tái)調(diào)用后臺(tái)變量的方法
更新時(shí)間:2010年07月11日 21:58:09 作者:
asp.net下前臺(tái)數(shù)據(jù)的調(diào)用輸出方法,需要的朋友可以參考下。
Net前臺(tái)調(diào)用后臺(tái)變量
1.Asp.Net中幾種相似的標(biāo)記符號(hào): < %=...%>< %#... %>< % %>< %@ %>解釋及用法
答: < %#... %>: 是在綁定控件DataBind()方法執(zhí)行時(shí)被執(zhí)行,用于數(shù)據(jù)綁定
如: < %# Container.DataItem("tit") %>
< %= %>: 在程序執(zhí)行時(shí)被調(diào)用,可以顯示后臺(tái)變量值
如:
*.aspx中: < %= aaa %>
*.cs中: protected string aaa="姓名";
< % %>: 內(nèi)聯(lián)代碼塊里面可以在頁(yè)面文件*.aspx或*.ascx文件里面嵌入后臺(tái)代碼
如:
< %
for(int i=0;i<100;i++)
{
Reaponse.Write(i.ToString());
}
%>
< %@ %>是在*.aspx頁(yè)面前臺(tái)代碼導(dǎo)入命名空間,
如:
< %@ Import namespace="System.Data"%>
2.控件接收哪些類型數(shù)據(jù)?
答:接收Bind的控件,一般有DropDownList,DataList,DataGrid,ListBox這些集合性質(zhì)的控件,而被捆綁 的主要是ArrayList(數(shù)組),Hashtable(哈稀表),DataView(數(shù)據(jù)視圖),DataReader這四個(gè),以后我們就可以 對(duì)號(hào)入座,不會(huì)出現(xiàn)DataTable被捆綁的錯(cuò)誤了:)
3.DataBind,獲得的數(shù)據(jù),系統(tǒng)會(huì)將其默認(rèn)為String,怎樣轉(zhuǎn)化為其它的類型?
DataBinder.Eval(Container.DataItem,"轉(zhuǎn)換的類型","格式")
最后一個(gè)"格式"是可選的,一般不用去管他,Container.DataItem是捆綁的數(shù)據(jù)項(xiàng),"轉(zhuǎn)換類型"指的是 Integer,String,Boolean這一類東西.
4.主要命名空間:
< % @ Import Namespace="System.Data" %> 處理數(shù)據(jù)時(shí)用到
< % @ Import Namespace="System.Data.ADO" % > 使用ADO.net ; 時(shí)用到
< % @ Import Namespace="System.Data.SQL" %> SQL Server 數(shù)據(jù)庫(kù)專用
< % @ Import Namespace="System.Data.XML" %> 不用看處理XML用到
< % @ Import Namespace="System.IO" %> 處理文件時(shí)用到
< % @ Import Namespace="System.Web.Util" %> 發(fā)郵件時(shí)大家會(huì)用到
< % @ Import Namespace="System.Text" %> 文本編碼時(shí)用到
5.Connections(SQLConection 或者 ADOConnection)的常用屬性和方法:
| ConnectionString 取得或設(shè)置連結(jié)數(shù)據(jù)庫(kù)的語(yǔ)句
| ConnectionTimeout 取得或設(shè)置連結(jié)數(shù)據(jù)庫(kù)的最長(zhǎng)時(shí)間,也是就超時(shí)時(shí)間
| DataBase 取得或設(shè)置在數(shù)據(jù)庫(kù)服務(wù)器上要打開的數(shù)據(jù)庫(kù)名
| DataSource 取得或設(shè)置DSN,大家不會(huì)陌生吧:)
| Password 取得或設(shè)置密碼
| UserID 取得或設(shè)置登陸名
| State 取得目前聯(lián)結(jié)的狀態(tài)
| Open() 打開聯(lián)結(jié)
| Close() 關(guān)閉聯(lián)結(jié)
| Clone() 克隆一個(gè)聯(lián)結(jié)。(呵呵,綿羊可以Connection我也可以)
示例:
SQLConnection myConnection = new SQLConnection();
myConnection.DataSource = "mySQLServer";
myConnection.Password = "";
myConnection.UserID = "sa";
myConnection.ConnectionTimeout = 30;
myConnection.Open();
myConnection.Database = "northwind";
myConnection.IsolationLevel = IsolationLevel.ReadCommitted
6.Command常用的方法和屬性
| ActiveConnection 取得或設(shè)置聯(lián)結(jié)Connections
| CommandText 執(zhí)行的SQL語(yǔ)句或儲(chǔ)存過(guò)程(StoredProcedure)名
| CommandTimeout 執(zhí)行的最長(zhǎng)時(shí)間
| CommandType Command操作的類型(StoredProcedure,Text,TableDirect)三種,默認(rèn)Text
| Parameters 操作儲(chǔ)存過(guò)程時(shí)使用
| Execute() 執(zhí)行SQL語(yǔ)句或儲(chǔ)存過(guò)程
| ExecuteNonQuery() 同上,區(qū)別在于不返回記錄集
| Clone() 克隆Command
示例:
string mySelectQuery = "SELECT * FROM Categories ORDER BY CategoryID";
stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer";
SQLCommand myCommand = new SQLCommand(mySelectQuery);
myCommand.ActiveConnection = new SQLConnection(myConnectString);
myCommand.CommandTimeout = 15;
myCommand.CommandType = CommandType.Text;< /FONT >
7.打開和關(guān)閉數(shù)據(jù)庫(kù)兩種方法:
1.MyConnection.Open(); //打開聯(lián)結(jié)
MyConnection.Close();
2.MyCommand.ActiveConnection.Open();
MyCommand.ActiveConnection.Close()
8.使用DataSet,在數(shù)據(jù)庫(kù)中增加、修改、刪除一個(gè)數(shù)據(jù)
a.添加數(shù)據(jù)
DataRow dr=MyDataSet.Tables["UserList"].NewRow();
dr["UserName"] = "周訊";
dr["ReMark"] = "100";
dr["Comment"] = "漂亮MM";
MyDataSet.Tables.Rows.Add(dr);
b.修改數(shù)據(jù)
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飛刀大哥";
c.刪除數(shù)據(jù)
MyDataSet.Tables["UserList"],Rows[0].Delete();
d.恢復(fù)數(shù)據(jù)
if(MyDataSet.HasErrors)
{
MyDataSet.RejectChanges();
}
e.探測(cè)DataSet是否有改動(dòng)
if(MyDataSet.HasChanges)
{
//保存代碼
}else{
//因?yàn)闆](méi)有變化,所以不用保存,以節(jié)省時(shí)間
}
f.更新數(shù)據(jù)庫(kù)
MyComm.Update(MyDataSet); //更新數(shù)據(jù)庫(kù)中所有的表
MyComm.Update(MyDataSet,"UserList"); //更新某個(gè)表
9.DataGrid實(shí)現(xiàn)分頁(yè)功能
AllowPaging="True" //是指允許分頁(yè),這個(gè)是最主要的。有了它,我們才能分頁(yè)。
PageSize="5" //是指定每頁(yè)顯示的記錄數(shù),如果不寫,就會(huì)默認(rèn)為10條。
PagerStyle-HorizontalAlign="Right" //是指定分面顯示的定位,默認(rèn)是Left
PagerStyle-NextPageText="下一頁(yè)" //把<>改為上一頁(yè)和下一頁(yè)字符串
PagerStyle-PrevPageText="上一頁(yè)"
PagerStyle-Mode="NumericPages" //把<>改為123數(shù)字顯示
10.顯示一共有多少頁(yè),并且報(bào)告當(dāng)前為第幾頁(yè)
當(dāng)前頁(yè)是:< %=DataGrid1.CurrentPageIndex+1%>
總頁(yè)數(shù)是:< %=DataGrid1.PageCount%>
11.個(gè)性化分頁(yè)
程序員大本營(yíng)之"親密接觸ASP.Net(14)"有完整代碼
12.要將頁(yè)面重置為有效的狀態(tài)
IValidator val;
foreach(val in Validators)
{
Val.IsValid = true;
}
13.重新執(zhí)行整個(gè)驗(yàn)證序列
IValidator val;
foreach(val in Validators)
{
Val.Validate();
}
14.禁用客戶端驗(yàn)證
< %@ Page Language="c#" clienttarget=downlevel %>
15.Repeater、DataList和DataGrid控件用途"
這些控件可以簡(jiǎn)化幾種常見(jiàn)的 Web 應(yīng)用程序方案,包括報(bào)表、購(gòu)物車、產(chǎn)品列表、查詢
結(jié)果和導(dǎo)航菜單。 Repeater是唯一允許在其模板中存在 HTML片段的控件.
16.Server.Execute("another.aspx")和Server.Transfer("another.aspx")區(qū)別:
Execute是從當(dāng)前頁(yè)面轉(zhuǎn)移到指定頁(yè)面,并將執(zhí)行返回到當(dāng)前頁(yè)面
Transfer是將執(zhí)行完全轉(zhuǎn)移到指定頁(yè)面
17.XML文件中可以自己存有架構(gòu),也可以存在于*.xsl文件中,但必須通過(guò)xmlns屬性在xml文檔的根節(jié)點(diǎn)中指定該信息,如下所示:
18.XML文件的讀取
FileStream myfs=new Filestream(Server.MapPath("xmldtagrid.xml"),FileMode.Open,FileAccess.Read);
StreamReader myreader=new StreamReader(myfs);
DataSet myds=new DataSet();
myds.ReadXml(myreader);
19.正則表達(dá)式 控件RegularExpressionValidator
符號(hào) 含義
^ 指定檢查開始處
$ 指定檢查結(jié)束處
[] 檢查輸入的值是否與方括弧中的字符之一相匹配
\W 允許輸入任何值
\d{} "\d"指定輸入的值是一個(gè)數(shù)字,{}表示已指定數(shù)據(jù)類型的出現(xiàn)次數(shù)
+ 表明一個(gè)或多個(gè)元素將被添加到正在檢查的表達(dá)式
示例:電子郵件格式(具有@號(hào),且以.com/.net/.org/.edu結(jié)尾)
validationexpression="^[\w-]+@[\w-]+\.(com|net|org|edu)$"
20.DataGrid控件中數(shù)據(jù)操作重要語(yǔ)句:
屬性:DataKeyField="userid" //設(shè)userid為表的主鍵,無(wú)法將該字段的值更新到數(shù)據(jù)庫(kù),最好設(shè)表的主鍵為DataGrid的主鍵
SqlCommand.Parameters["@userid"].Value=dg.DataKeys[(int)e.Item.ItemIndex]; //檢索所要更新的行的主鍵(將當(dāng)前選定的行的 主鍵值賦給命令的一個(gè)參)數(shù)
SqlCommand.Parameters["@fname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text; //為參數(shù)賦予已修改的行值
21.自定義控件:
a.用戶控件(ASP創(chuàng)建頁(yè)面一樣)
(I). 創(chuàng)建頁(yè)面,拖入控件,設(shè)置屬性/方法. < % @Control Language="C#" Debug="True" %>中的@Control指令來(lái)定義此頁(yè) 將包含控件代碼
(II) 保存為*.ascx文件,如a.ascx.
(III).使用: 頭<%@Register Tagprefix="MyFirstControl" TagName="MyLbl" Src="a.axcs" %>
//Tagprefix為控件的前綴,像ASP:TextBox中的ASP
//TagName用于指定自定義控件的名稱
//Src指定控件文件源
身體:
b.使用C#創(chuàng)建自定義控件
(I). 創(chuàng)建純代碼文件,繼承基類Control,并保存為*.cs,如a.cs.
(II).將代碼編譯生成程序集: csc /t:library /r:System.dll,System.Web.Dll a.cs
//library告訴C#編譯器生成程序集
// /r:System.dll System.Web.Dll告訴C#編譯器引用指定的程序集
(III).將生成dll文件放在bin目錄中
(IV).使用: < % @Register TagPrefix="Mine" Namespace="MyOwnControls" Assembly="a" %>
22.復(fù)合控件注意事項(xiàng):
public class MyCompositin:Control,INamingContainer //INamingContainer:如果在頁(yè)面上有多個(gè)此控件實(shí)例,則此結(jié)口可以給每 {} //個(gè)實(shí)例有唯一標(biāo)志
this.EnsureChildControls();//表示將復(fù)合控件的子控件都呈現(xiàn)到頁(yè)面上,此方法檢查服務(wù)器控件是否包含子控件
CreateChildControls
23.Button/LinkButton/ImageButton/HyperLink什么時(shí)候用?
1.Button和ImageButton用于將數(shù)據(jù)傳遞回服務(wù)器.
2.Hyperlink用于在頁(yè)面之間導(dǎo)航
3.LinkButton用于將數(shù)據(jù)保存到服務(wù)器或訪問(wèn)服務(wù)器上的數(shù)據(jù)
24.跟蹤調(diào)試
跟蹤:
1.頁(yè)級(jí)別跟蹤: 在頁(yè)的開頭包括如下的頁(yè)指令< %@ Page Trace="True" TraceMode="SortByCategory/SortByTime" %>
自定義消息:
Trace.Write("這里為要顯示的字符串");
Trace.Warn("這里為要顯示的字符串"); //與Trace.Write相同,只是字體為紅色
檢查是否使用了跟蹤
例句: if(Trace.IsEnabled) { Trace.Warn("已啟用跟蹤")}
2.應(yīng)用程序級(jí)別跟蹤: 在Web.config文件的節(jié)中
25.設(shè)置緩存:
1.輸出緩存:
I.頁(yè)面設(shè)置: 將 < %@ OutputCache Duration="120" VaryByParam="none" %> 加在需要緩存頁(yè)的開頭
注釋:在請(qǐng)求該頁(yè)的后兩分鐘之內(nèi),輸出內(nèi)容不變
II.編程方式設(shè)置:
主要使用類System.Web.HttpCachePolicy類下的方法
(1). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120)); //在此方法中必須指定到期時(shí)間,如本語(yǔ) //句為兩分鐘
(2). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.SetSlidingExpiration(true); //"可調(diào)到期",主要用于那些開始訪問(wèn)量大,但隨后訪問(wèn) //量平衡的情況
功能:第一句設(shè)置緩存到期時(shí)間,第二行打開 sliding expiration(可調(diào)到期).
2.數(shù)據(jù)緩存:
(1).DataView mySource; (2).給mySource賦值;
(3).Cache["myCache"]=mySource; (4).mySource=(DataView)Cache["myCache"]
26.部署: 直接復(fù)制到產(chǎn)品服務(wù)器即可 復(fù)制語(yǔ)句: XCOPY //XOPY只接受物理路徑,不接受虛擬路徑
26.自定義分頁(yè)按鈕
1.
protected void ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
System.Web.UI.WebControls.ListItemType elemType = e.Item.ItemType;
if (elemType == System.Web.UI.WebControls.ListItemType.Pager)
{
TableCell pager = (TableCell) e.Item.Controls[0];
for (int i=0; i {
Object o = pager.Controls[i];
if (o is LinkButton)
{
LinkButton h = (LinkButton) o;
h.Text = " " + h.Text + " ";
}
else
{
Label l = (Label) o;
l.Text = String.Format("[第{0}頁(yè)]", l.Text);
}
}
}
}
2. 引用:zhangzs8896(小二)
private void MyDataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType lit_item=e.Item.ItemType;
TableCell tc_item=(TableCell)e.Item.Controls[0];
if (lit_item==ListItemType.Pager)
{
for (int i=0;i {
object obj_item=tc_item.Controls[i];
if (obj_item is LinkButton)
{
LinkButton lbn_item=(LinkButton)obj_item;
lbn_item.Text=lbn_item.Text;
lbn_item.Font.Size=10;
lbn_item.ForeColor=Color.FromName("#666666");
lbn_item.Attributes.Add ("onmouseover","currentcolor=this.style.color;this.style.color='#14AC05'");
lbn_item.Attributes.Add("onmouseout","this.style.color=currentcolor");
}
else
{
Label lbl_item=(Label)obj_item;
lbl_item.ForeColor=Color.Blue;
lbl_item.Font.Bold=true;
lbl_item.Font.Underline=true;
lbl_item.Text="" + lbl_item.Text + "";
lbl_item.Font.Size=10;
}
}
}
}
1.Asp.Net中幾種相似的標(biāo)記符號(hào): < %=...%>< %#... %>< % %>< %@ %>解釋及用法
答: < %#... %>: 是在綁定控件DataBind()方法執(zhí)行時(shí)被執(zhí)行,用于數(shù)據(jù)綁定
如: < %# Container.DataItem("tit") %>
< %= %>: 在程序執(zhí)行時(shí)被調(diào)用,可以顯示后臺(tái)變量值
如:
*.aspx中: < %= aaa %>
*.cs中: protected string aaa="姓名";
< % %>: 內(nèi)聯(lián)代碼塊里面可以在頁(yè)面文件*.aspx或*.ascx文件里面嵌入后臺(tái)代碼
如:
< %
for(int i=0;i<100;i++)
{
Reaponse.Write(i.ToString());
}
%>
< %@ %>是在*.aspx頁(yè)面前臺(tái)代碼導(dǎo)入命名空間,
如:
< %@ Import namespace="System.Data"%>
2.控件接收哪些類型數(shù)據(jù)?
答:接收Bind的控件,一般有DropDownList,DataList,DataGrid,ListBox這些集合性質(zhì)的控件,而被捆綁 的主要是ArrayList(數(shù)組),Hashtable(哈稀表),DataView(數(shù)據(jù)視圖),DataReader這四個(gè),以后我們就可以 對(duì)號(hào)入座,不會(huì)出現(xiàn)DataTable被捆綁的錯(cuò)誤了:)
3.DataBind,獲得的數(shù)據(jù),系統(tǒng)會(huì)將其默認(rèn)為String,怎樣轉(zhuǎn)化為其它的類型?
DataBinder.Eval(Container.DataItem,"轉(zhuǎn)換的類型","格式")
最后一個(gè)"格式"是可選的,一般不用去管他,Container.DataItem是捆綁的數(shù)據(jù)項(xiàng),"轉(zhuǎn)換類型"指的是 Integer,String,Boolean這一類東西.
4.主要命名空間:
< % @ Import Namespace="System.Data" %> 處理數(shù)據(jù)時(shí)用到
< % @ Import Namespace="System.Data.ADO" % > 使用ADO.net ; 時(shí)用到
< % @ Import Namespace="System.Data.SQL" %> SQL Server 數(shù)據(jù)庫(kù)專用
< % @ Import Namespace="System.Data.XML" %> 不用看處理XML用到
< % @ Import Namespace="System.IO" %> 處理文件時(shí)用到
< % @ Import Namespace="System.Web.Util" %> 發(fā)郵件時(shí)大家會(huì)用到
< % @ Import Namespace="System.Text" %> 文本編碼時(shí)用到
5.Connections(SQLConection 或者 ADOConnection)的常用屬性和方法:
| ConnectionString 取得或設(shè)置連結(jié)數(shù)據(jù)庫(kù)的語(yǔ)句
| ConnectionTimeout 取得或設(shè)置連結(jié)數(shù)據(jù)庫(kù)的最長(zhǎng)時(shí)間,也是就超時(shí)時(shí)間
| DataBase 取得或設(shè)置在數(shù)據(jù)庫(kù)服務(wù)器上要打開的數(shù)據(jù)庫(kù)名
| DataSource 取得或設(shè)置DSN,大家不會(huì)陌生吧:)
| Password 取得或設(shè)置密碼
| UserID 取得或設(shè)置登陸名
| State 取得目前聯(lián)結(jié)的狀態(tài)
| Open() 打開聯(lián)結(jié)
| Close() 關(guān)閉聯(lián)結(jié)
| Clone() 克隆一個(gè)聯(lián)結(jié)。(呵呵,綿羊可以Connection我也可以)
示例:
SQLConnection myConnection = new SQLConnection();
myConnection.DataSource = "mySQLServer";
myConnection.Password = "";
myConnection.UserID = "sa";
myConnection.ConnectionTimeout = 30;
myConnection.Open();
myConnection.Database = "northwind";
myConnection.IsolationLevel = IsolationLevel.ReadCommitted
6.Command常用的方法和屬性
| ActiveConnection 取得或設(shè)置聯(lián)結(jié)Connections
| CommandText 執(zhí)行的SQL語(yǔ)句或儲(chǔ)存過(guò)程(StoredProcedure)名
| CommandTimeout 執(zhí)行的最長(zhǎng)時(shí)間
| CommandType Command操作的類型(StoredProcedure,Text,TableDirect)三種,默認(rèn)Text
| Parameters 操作儲(chǔ)存過(guò)程時(shí)使用
| Execute() 執(zhí)行SQL語(yǔ)句或儲(chǔ)存過(guò)程
| ExecuteNonQuery() 同上,區(qū)別在于不返回記錄集
| Clone() 克隆Command
示例:
string mySelectQuery = "SELECT * FROM Categories ORDER BY CategoryID";
stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer";
SQLCommand myCommand = new SQLCommand(mySelectQuery);
myCommand.ActiveConnection = new SQLConnection(myConnectString);
myCommand.CommandTimeout = 15;
myCommand.CommandType = CommandType.Text;< /FONT >
7.打開和關(guān)閉數(shù)據(jù)庫(kù)兩種方法:
1.MyConnection.Open(); //打開聯(lián)結(jié)
MyConnection.Close();
2.MyCommand.ActiveConnection.Open();
MyCommand.ActiveConnection.Close()
8.使用DataSet,在數(shù)據(jù)庫(kù)中增加、修改、刪除一個(gè)數(shù)據(jù)
a.添加數(shù)據(jù)
DataRow dr=MyDataSet.Tables["UserList"].NewRow();
dr["UserName"] = "周訊";
dr["ReMark"] = "100";
dr["Comment"] = "漂亮MM";
MyDataSet.Tables.Rows.Add(dr);
b.修改數(shù)據(jù)
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飛刀大哥";
c.刪除數(shù)據(jù)
MyDataSet.Tables["UserList"],Rows[0].Delete();
d.恢復(fù)數(shù)據(jù)
if(MyDataSet.HasErrors)
{
MyDataSet.RejectChanges();
}
e.探測(cè)DataSet是否有改動(dòng)
if(MyDataSet.HasChanges)
{
//保存代碼
}else{
//因?yàn)闆](méi)有變化,所以不用保存,以節(jié)省時(shí)間
}
f.更新數(shù)據(jù)庫(kù)
MyComm.Update(MyDataSet); //更新數(shù)據(jù)庫(kù)中所有的表
MyComm.Update(MyDataSet,"UserList"); //更新某個(gè)表
9.DataGrid實(shí)現(xiàn)分頁(yè)功能
AllowPaging="True" //是指允許分頁(yè),這個(gè)是最主要的。有了它,我們才能分頁(yè)。
PageSize="5" //是指定每頁(yè)顯示的記錄數(shù),如果不寫,就會(huì)默認(rèn)為10條。
PagerStyle-HorizontalAlign="Right" //是指定分面顯示的定位,默認(rèn)是Left
PagerStyle-NextPageText="下一頁(yè)" //把<>改為上一頁(yè)和下一頁(yè)字符串
PagerStyle-PrevPageText="上一頁(yè)"
PagerStyle-Mode="NumericPages" //把<>改為123數(shù)字顯示
10.顯示一共有多少頁(yè),并且報(bào)告當(dāng)前為第幾頁(yè)
當(dāng)前頁(yè)是:< %=DataGrid1.CurrentPageIndex+1%>
總頁(yè)數(shù)是:< %=DataGrid1.PageCount%>
11.個(gè)性化分頁(yè)
程序員大本營(yíng)之"親密接觸ASP.Net(14)"有完整代碼
12.要將頁(yè)面重置為有效的狀態(tài)
IValidator val;
foreach(val in Validators)
{
Val.IsValid = true;
}
13.重新執(zhí)行整個(gè)驗(yàn)證序列
IValidator val;
foreach(val in Validators)
{
Val.Validate();
}
14.禁用客戶端驗(yàn)證
< %@ Page Language="c#" clienttarget=downlevel %>
15.Repeater、DataList和DataGrid控件用途"
這些控件可以簡(jiǎn)化幾種常見(jiàn)的 Web 應(yīng)用程序方案,包括報(bào)表、購(gòu)物車、產(chǎn)品列表、查詢
結(jié)果和導(dǎo)航菜單。 Repeater是唯一允許在其模板中存在 HTML片段的控件.
16.Server.Execute("another.aspx")和Server.Transfer("another.aspx")區(qū)別:
Execute是從當(dāng)前頁(yè)面轉(zhuǎn)移到指定頁(yè)面,并將執(zhí)行返回到當(dāng)前頁(yè)面
Transfer是將執(zhí)行完全轉(zhuǎn)移到指定頁(yè)面
17.XML文件中可以自己存有架構(gòu),也可以存在于*.xsl文件中,但必須通過(guò)xmlns屬性在xml文檔的根節(jié)點(diǎn)中指定該信息,如下所示:
18.XML文件的讀取
FileStream myfs=new Filestream(Server.MapPath("xmldtagrid.xml"),FileMode.Open,FileAccess.Read);
StreamReader myreader=new StreamReader(myfs);
DataSet myds=new DataSet();
myds.ReadXml(myreader);
19.正則表達(dá)式 控件RegularExpressionValidator
符號(hào) 含義
^ 指定檢查開始處
$ 指定檢查結(jié)束處
[] 檢查輸入的值是否與方括弧中的字符之一相匹配
\W 允許輸入任何值
\d{} "\d"指定輸入的值是一個(gè)數(shù)字,{}表示已指定數(shù)據(jù)類型的出現(xiàn)次數(shù)
+ 表明一個(gè)或多個(gè)元素將被添加到正在檢查的表達(dá)式
示例:電子郵件格式(具有@號(hào),且以.com/.net/.org/.edu結(jié)尾)
validationexpression="^[\w-]+@[\w-]+\.(com|net|org|edu)$"
20.DataGrid控件中數(shù)據(jù)操作重要語(yǔ)句:
屬性:DataKeyField="userid" //設(shè)userid為表的主鍵,無(wú)法將該字段的值更新到數(shù)據(jù)庫(kù),最好設(shè)表的主鍵為DataGrid的主鍵
SqlCommand.Parameters["@userid"].Value=dg.DataKeys[(int)e.Item.ItemIndex]; //檢索所要更新的行的主鍵(將當(dāng)前選定的行的 主鍵值賦給命令的一個(gè)參)數(shù)
SqlCommand.Parameters["@fname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text; //為參數(shù)賦予已修改的行值
21.自定義控件:
a.用戶控件(ASP創(chuàng)建頁(yè)面一樣)
(I). 創(chuàng)建頁(yè)面,拖入控件,設(shè)置屬性/方法. < % @Control Language="C#" Debug="True" %>中的@Control指令來(lái)定義此頁(yè) 將包含控件代碼
(II) 保存為*.ascx文件,如a.ascx.
(III).使用: 頭<%@Register Tagprefix="MyFirstControl" TagName="MyLbl" Src="a.axcs" %>
//Tagprefix為控件的前綴,像ASP:TextBox中的ASP
//TagName用于指定自定義控件的名稱
//Src指定控件文件源
身體:
b.使用C#創(chuàng)建自定義控件
(I). 創(chuàng)建純代碼文件,繼承基類Control,并保存為*.cs,如a.cs.
(II).將代碼編譯生成程序集: csc /t:library /r:System.dll,System.Web.Dll a.cs
//library告訴C#編譯器生成程序集
// /r:System.dll System.Web.Dll告訴C#編譯器引用指定的程序集
(III).將生成dll文件放在bin目錄中
(IV).使用: < % @Register TagPrefix="Mine" Namespace="MyOwnControls" Assembly="a" %>
22.復(fù)合控件注意事項(xiàng):
public class MyCompositin:Control,INamingContainer //INamingContainer:如果在頁(yè)面上有多個(gè)此控件實(shí)例,則此結(jié)口可以給每 {} //個(gè)實(shí)例有唯一標(biāo)志
this.EnsureChildControls();//表示將復(fù)合控件的子控件都呈現(xiàn)到頁(yè)面上,此方法檢查服務(wù)器控件是否包含子控件
CreateChildControls
23.Button/LinkButton/ImageButton/HyperLink什么時(shí)候用?
1.Button和ImageButton用于將數(shù)據(jù)傳遞回服務(wù)器.
2.Hyperlink用于在頁(yè)面之間導(dǎo)航
3.LinkButton用于將數(shù)據(jù)保存到服務(wù)器或訪問(wèn)服務(wù)器上的數(shù)據(jù)
24.跟蹤調(diào)試
跟蹤:
1.頁(yè)級(jí)別跟蹤: 在頁(yè)的開頭包括如下的頁(yè)指令< %@ Page Trace="True" TraceMode="SortByCategory/SortByTime" %>
自定義消息:
Trace.Write("這里為要顯示的字符串");
Trace.Warn("這里為要顯示的字符串"); //與Trace.Write相同,只是字體為紅色
檢查是否使用了跟蹤
例句: if(Trace.IsEnabled) { Trace.Warn("已啟用跟蹤")}
2.應(yīng)用程序級(jí)別跟蹤: 在Web.config文件的節(jié)中
25.設(shè)置緩存:
1.輸出緩存:
I.頁(yè)面設(shè)置: 將 < %@ OutputCache Duration="120" VaryByParam="none" %> 加在需要緩存頁(yè)的開頭
注釋:在請(qǐng)求該頁(yè)的后兩分鐘之內(nèi),輸出內(nèi)容不變
II.編程方式設(shè)置:
主要使用類System.Web.HttpCachePolicy類下的方法
(1). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120)); //在此方法中必須指定到期時(shí)間,如本語(yǔ) //句為兩分鐘
(2). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
Response.Cache.SetSlidingExpiration(true); //"可調(diào)到期",主要用于那些開始訪問(wèn)量大,但隨后訪問(wèn) //量平衡的情況
功能:第一句設(shè)置緩存到期時(shí)間,第二行打開 sliding expiration(可調(diào)到期).
2.數(shù)據(jù)緩存:
(1).DataView mySource; (2).給mySource賦值;
(3).Cache["myCache"]=mySource; (4).mySource=(DataView)Cache["myCache"]
26.部署: 直接復(fù)制到產(chǎn)品服務(wù)器即可 復(fù)制語(yǔ)句: XCOPY //XOPY只接受物理路徑,不接受虛擬路徑
26.自定義分頁(yè)按鈕
1.
復(fù)制代碼 代碼如下:
protected void ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
System.Web.UI.WebControls.ListItemType elemType = e.Item.ItemType;
if (elemType == System.Web.UI.WebControls.ListItemType.Pager)
{
TableCell pager = (TableCell) e.Item.Controls[0];
for (int i=0; i {
Object o = pager.Controls[i];
if (o is LinkButton)
{
LinkButton h = (LinkButton) o;
h.Text = " " + h.Text + " ";
}
else
{
Label l = (Label) o;
l.Text = String.Format("[第{0}頁(yè)]", l.Text);
}
}
}
}
2. 引用:zhangzs8896(小二)
復(fù)制代碼 代碼如下:
private void MyDataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType lit_item=e.Item.ItemType;
TableCell tc_item=(TableCell)e.Item.Controls[0];
if (lit_item==ListItemType.Pager)
{
for (int i=0;i {
object obj_item=tc_item.Controls[i];
if (obj_item is LinkButton)
{
LinkButton lbn_item=(LinkButton)obj_item;
lbn_item.Text=lbn_item.Text;
lbn_item.Font.Size=10;
lbn_item.ForeColor=Color.FromName("#666666");
lbn_item.Attributes.Add ("onmouseover","currentcolor=this.style.color;this.style.color='#14AC05'");
lbn_item.Attributes.Add("onmouseout","this.style.color=currentcolor");
}
else
{
Label lbl_item=(Label)obj_item;
lbl_item.ForeColor=Color.Blue;
lbl_item.Font.Bold=true;
lbl_item.Font.Underline=true;
lbl_item.Text="" + lbl_item.Text + "";
lbl_item.Font.Size=10;
}
}
}
}
相關(guān)文章
ASP.NET Core基礎(chǔ)之請(qǐng)求處理管道
這篇文章介紹了ASP.NET Core的請(qǐng)求處理管道,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02ASP.NET web.config 配置節(jié)點(diǎn)詳解
這篇文章主要介紹了ASP.NET web.config 節(jié)點(diǎn)的配置,講解的非常詳細(xì),需要的朋友可以參考下。2016-06-06那些年,我還在學(xué)asp.net(一) 學(xué)習(xí)筆記
那些年到此,基本學(xué)習(xí)了前端的基本知識(shí),那些年的第四課就是asp.net,當(dāng)然那時(shí)看了很多教程,比如說(shuō):天轟穿,當(dāng)然天轟穿說(shuō)得比較多,如面向?qū)ο螅珻#知識(shí),由于當(dāng)時(shí)上過(guò)C++,所以就沒(méi)有看這些,直接從asp.net開始,主要是學(xué)習(xí)一下asp.net用到的一些基本控件2012-03-03