摘 要: 友情鏈接是Web應(yīng)用程序中最基本的功能,在自己的網(wǎng)站上放置對方網(wǎng)站的LOGO圖片或文字的網(wǎng)站名稱,點(diǎn)擊后切換或彈出另一個(gè)新的頁面。本構(gòu)件通過類代碼實(shí)現(xiàn),設(shè)計(jì)的基本思路是:將友情鏈接數(shù)據(jù)存儲在數(shù)據(jù)庫中,從數(shù)據(jù)庫中讀取數(shù)據(jù)綁定至Panel控件,也可向數(shù)據(jù)庫添加友情鏈接數(shù)據(jù),可以方便地在網(wǎng)站中設(shè)計(jì)友情鏈接。
關(guān)鍵詞: 原子構(gòu)件;友情鏈接;類代碼;數(shù)據(jù)綁定
友情鏈接是網(wǎng)站常見的鏈入鏈出功能,有更多相關(guān)性的友情鏈接容易被搜索引擎認(rèn)為是網(wǎng)站重要程度的體現(xiàn),是被搜索引擎收錄和排名靠前的重要依據(jù)。友情鏈接,也稱為網(wǎng)站交換鏈接、互惠鏈接、互換鏈接、聯(lián)盟鏈接等,是具有一定資源互補(bǔ)優(yōu)勢的網(wǎng)站之間的簡單合作形式。即分別在自己的網(wǎng)站上放置對方網(wǎng)站的LOGO圖片或文字的網(wǎng)站名稱,并設(shè)置對方網(wǎng)站的超鏈接(點(diǎn)擊后,切換或彈出另一個(gè)新的頁面),使得用戶可以從合作網(wǎng)站中發(fā)現(xiàn)自己的網(wǎng)站,達(dá)到互相推廣的目的,因此常作為一種網(wǎng)站推廣基本手段。友情鏈接是Web應(yīng)用程序中一個(gè)最基本的功能,友情鏈接構(gòu)件的功能就是為了實(shí)現(xiàn)動態(tài)顯示友情鏈接數(shù)據(jù)而設(shè)計(jì)的。本構(gòu)件通過類代碼實(shí)現(xiàn),設(shè)計(jì)的基本思路是:將友情鏈接數(shù)據(jù)存儲在數(shù)據(jù)庫中,從數(shù)據(jù)庫中讀取數(shù)據(jù)綁定至Panel控件,也可向數(shù)據(jù)庫添加友情鏈接數(shù)據(jù),可以方便地在網(wǎng)站中設(shè)計(jì)友情鏈接。
1 原子構(gòu)件的開發(fā)設(shè)計(jì)
1.1 準(zhǔn)備測試數(shù)據(jù)庫
為了說明友情鏈接構(gòu)件的使用,程序至少需要一個(gè)測試數(shù)據(jù)庫。要求該數(shù)據(jù)庫至少有一個(gè)用于存放友情鏈接信息的數(shù)據(jù)表,在已有數(shù)據(jù)庫T_LinkData.mdf添加數(shù)據(jù)表即可。
(1)在數(shù)據(jù)庫T_LinkData.mdf中創(chuàng)建一個(gè)名為“T_link”數(shù)據(jù)表。
(2)在數(shù)據(jù)表T_link中,創(chuàng)建:名稱、網(wǎng)址、類別等字段,數(shù)據(jù)庫表T_link的結(jié)構(gòu)如圖1所示。

(3)為了便于測試,事先添加若干條記錄。
1.2 設(shè)計(jì)原子構(gòu)件
(1)啟動VS2005(或VS2008),新建一個(gè)網(wǎng)站,名稱為“導(dǎo)航構(gòu)件”,在當(dāng)前項(xiàng)目中將默認(rèn)的Web窗體Default.aspx更改為friendlink.aspx。
(2)選擇“解決方案資源管理器”中的“App_Data”,右擊,在出現(xiàn)的快捷菜單中選擇“添加現(xiàn)有項(xiàng)”,將上一步驟中準(zhǔn)備的數(shù)據(jù)庫添加到當(dāng)前項(xiàng)目的“App_Data”目錄下。
(3)在項(xiàng)目中新建一個(gè)“DataBase”類,該類的功能從數(shù)據(jù)庫中讀取數(shù)據(jù)。
(4)進(jìn)入類代碼視圖,在代碼視圖的最前面輸入代碼using System.Data.SqlClient,導(dǎo)入命名空間,此命名空間主要與數(shù)據(jù)庫操作有關(guān)。
(5)在DataBase類中添加方法GetDataFromDB(),該方法的功能為公共查詢,對傳遞過來的查詢字符串,如果查詢成功則返回符合查詢條件的記錄構(gòu)成的數(shù)據(jù)表,否則返回空;添加方法UpdateDB(),用于對數(shù)據(jù)進(jìn)行添加、修改和刪除操作。
(6)在項(xiàng)目中新建一個(gè)“GetSetdata”類。在該類中添加方法GetData(),功能在控件Panel中創(chuàng)建友情鏈接;添加方法SetData(),功能為增加友情鏈接數(shù)據(jù)。
2 關(guān)鍵技術(shù)
(1)公共數(shù)據(jù)操作方法
public bool UpdateDB(string sqlstr)
{
SqlConnection sqlconn = new SqlConnection(connstr);//建立數(shù)據(jù)庫連接對象
try
{
SqlCommand cmdTable = new SqlCommand(sqlstr, sqlconn);
//實(shí)例執(zhí)行SQL語句的對象
cmdTable.CommandType = CommandType.Text;
//指定如何解釋命令字符串
sqlconn.Open();//打開連接
cmdTable.ExecuteNonQuery();//執(zhí)行SQL語句
return true;
}
catch (Exception ex)
{
sqlconn.Close();
return false;
}
}
(2)公共查詢方法
public DataTable GetDataFromDB(string sqlStr)//
{
try
{
dataConnection.ConnectionString = connstr;
//設(shè)置用于打開數(shù)據(jù)庫的字符串
dataAdapter = new SqlDataAdapter(sqlStr, dataConnection);
//將成員數(shù)據(jù)適配器對象實(shí)例化
dataset.Clear();
dataAdapter.Fill(dataset);//填充數(shù)據(jù)集對象
dataConnection.Close();//關(guān)閉數(shù)據(jù)的連接
}
catch (Exception ex)
{
dataConnection.Close();
}
if (dataset.Tables[0].Rows.Count != 0)
//如果記錄不為空,則返回符合條件記錄構(gòu)成的數(shù)據(jù)表
return dataset.Tables [0];
else
return null;
}
(3)在控件Panel中創(chuàng)建友情鏈接的方法
public Panel GetData(string s)
{
Panel Panel1 = new Panel();
Panel1 .Controls .Add (new LiteralControl ("友情鏈接"+"<br>"));
for (int i = 0; i < num; i++)
{
HtmlAnchor ha = new HtmlAnchor();
//實(shí)例化Html<a>元素
ha.InnerHtml = dt.Rows[i][0].ToString();
ha.HRef = dt.Rows[i][1].ToString();
ha.Target = "_blank";
Panel1.Controls.Add(ha);
//將超鏈接添加到Panel
Panel1.Controls.Add(new LiteralControl(s));
}
return Panel1;
}
(4)增加友情鏈接數(shù)據(jù)的方法
public string SetData(string s1,string s2,string s3)
{
string sqlstr,s;
sqlstr = "insert into T_link values ("+s1+"," +s2+","+s3+")";
DataBase db = new DataBase();
bool t = db.UpdateDB(sqlstr);
if (t == true)
s = "添加成功";
else
s = "添加失敗";
return s;
}
3 實(shí)現(xiàn)方案
(1)進(jìn)入friendlink.aspx的設(shè)計(jì)頁面。
(2)在事件處理代碼頁面,在Page_Load事件中添加代碼如下:
string s1 = "<br>";
//顯示一列,如果顯示一行s1 = " "
GetSetdata gs = new GetSetdata();
//實(shí)例化GetSetdata類的對象
this.Controls.Add(gs.GetData(s1));
//將Panel添加到Web窗體
(3)運(yùn)行friendlink.aspx頁面,運(yùn)行效果如圖2所示。

(4)本例中友情鏈接使用HtmlAnchor控件(在方法GetData()),請讀者自己設(shè)計(jì)使用HyperLink控件完成友情鏈接。
此構(gòu)件通過類代碼實(shí)現(xiàn),將友情鏈接數(shù)據(jù)存儲在數(shù)據(jù)庫中,從數(shù)據(jù)庫中讀取數(shù)據(jù)綁定至Panel控件,可以方便地在網(wǎng)站中設(shè)計(jì)友情鏈接。
參考文獻(xiàn)
[1] 吳兆立.基于ASP技術(shù)的學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(9).
[2] 許賓,胡勇輝,凌志勇.ASP.NET2.0(C#)應(yīng)用開發(fā)技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社,2008.
[3] 耿肇英等.C#應(yīng)用程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2008.
[4] 李林靜,葉冬芬,蔣曉丹.數(shù)據(jù)綁定與導(dǎo)航在Visual C#.Net下的實(shí)現(xiàn)及應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(12).
[5] 田珍,游智.基于.NET的網(wǎng)絡(luò)輔助教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2006(18).
[6] 王強(qiáng).用ASP設(shè)計(jì)自動友情鏈接系統(tǒng)[J].計(jì)算機(jī)與現(xiàn)代化,2004(8).
