1.9 免費供求信息審核頁(后臺)
1.9.1 免費供求信息審核頁概述
任何用戶都可以免費發(fā)布供求信息,如果用戶發(fā)布的供求信息屬于不道德、不健康以及違法的信息,那么將會造成不可估計的損失。所以后臺管理人員可以對供求信息進行審核,審核通過的供求信息可以顯示在分類相應的頁面中,否則,信息不能發(fā)布。免費供求信息審核頁面如圖1.40所示。
1.9.2 免費供求信息審核頁技術分析
免費供求信息審核頁中,主要用到了GridView表格中的3個典型功能,在此對其進行技術分析。表格中3個典型功能的應用如下:
? 將0和1替換為未審核和已審核狀態(tài)類型。
由于在數(shù)據(jù)庫中審核和未審核的供求信息是用數(shù)字表示(“0”表示未審核,“1”表示已經(jīng)通過審核)的,但在顯示時不能顯示為“0”或者“1”,要使軟件達到人性化效果,必須將其轉(zhuǎn)換成相應的漢字。
? 表格中多余的文字使用…代替。
由于供求信息的內(nèi)容涉及的文字數(shù)量很大,不能在一個單元格中顯示該條供求信息的所有內(nèi)容,否則界面不但不美觀,而且看上去很亂,因此本程序指定顯示18個字符,超過的使用…代替。
? 表格中高亮顯示行。
如果表格顯示的數(shù)據(jù)行數(shù)在3行或5行之內(nèi),可以不用高亮顯示行功能;如果數(shù)據(jù)量很大,在10或20行以上的數(shù)據(jù),用戶時間長了很容易看串行,則需要使用高亮顯示行。高亮顯示行是當鼠標移動到某行時,該行顯示特殊顏色,移開后顏色恢復,如圖1.41所示。
實現(xiàn)代碼如下:
例程27 代碼位置:光盤\TM\01\SIS\ BackGround\ CheckInfo.aspx.cs
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//高亮顯示指定行
e.Row.Attributes.Add("onMouseOver", "Color=this.style.backgroundColor;this.style.backgroundColor='#FFF000'");
e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=Color;");
//設置審核狀態(tài),并且設置相應的顏色
if (e.Row.Cells[5].Text == "False")
{
e.Row.Cells[5].Text =StringFormat.HighLight("未審核",true);
}
else
{
e.Row.Cells[5].Text = StringFormat.HighLight("已審核", false);
}
//多余字使用...顯示
e.Row.Cells[2].Text = StringFormat.Out(e.Row.Cells[2].Text, 18);
}
}
1.9.3 免費供求信息審核頁實現(xiàn)過程
本模塊使用的數(shù)據(jù)表:tb_info。
1.設計步驟
(1)在網(wǎng)站的根目錄下創(chuàng)建BackGround文件夾,用于存放網(wǎng)站后臺管理Web窗體。
(2)在BackGround文件夾中新建一個Web窗體,命名為CheckInfo.aspx,主要用于免費供求信息的審核。
(3)在Web窗體中添加一個Table,用于頁面的布局。
(4)在Table中添加一個Label控件,主要用于控制GridView控件分頁后的總頁數(shù)。主要屬性設置:AllowPaging屬性為True,即允許分頁;PageSize屬性為24,即每頁顯示24條數(shù)據(jù);AutoGenerateColumns屬性為False,即不顯示自動生成的列。
(5)在Table中添加3個RadioButton控件,分別用于控制顯示已審核供求信息、顯示未審核供求信息、顯示同類型所有供求信息。
(6)在Table中添加一個GridView控件,主要用于顯示供求信息及對供求信息的審核操作。
2.實現(xiàn)代碼
聲明全局靜態(tài)變量和類對象,用途參見代碼中注釋部分。在頁面的加載事件中,獲取供求信息的類型,并調(diào)用自定義GridViewBind()方法查詢相關類型的供求信息顯示在GridView控件中。值得注意的是,供求信息網(wǎng)所有分類供求信息審核都是在CheckInfo.aspx頁面實現(xiàn)的。頁面的加載事件中實現(xiàn)代碼如下:
例程28 代碼位置:光盤\TM\01\SIS\ BackGround\ CheckInfo.aspx.cs
Operation operation = new Operation(); //業(yè)務層類對象
static string infoType = ""; //供求信息類型
static int CheckType = -1; //3種類別:全部顯示(-1代表全部顯示)、顯示未審核(0)、顯示審核(1)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
infoType = Request.QueryString["id"].ToString();
GridViewBind(infoType);
}
}
自定義GridViewBind()方法,用于查詢相關類型的供求信息,并且將查詢結果顯示在GridView表格控件中。實現(xiàn)代碼如下:
例程29 代碼位置:光盤\TM\01\SIS\ BackGround\ CheckInfo.aspx.cs
/// <summary>
/// 綁定供求信息到GridViev控件
/// </summary>
/// <param name="type">供求信息類別</param>
private void GridViewBind(string type)
{
GridView1.DataSource = operation.SelectInfo(type);
GridView1.DataKeyNames=new string[] {"id"};
GridView1.DataBind();
//顯示當前頁數(shù)
lblPageSum.Text = "當前頁為 " + (GridView1.PageIndex + 1) + " / " + GridView1.PageCount + " 頁";
}
GridView控件的RowDataBound事件是在將數(shù)據(jù)行綁定到數(shù)據(jù)時發(fā)生,那么在該事件下每綁定一行,就設置每行的相關功能,如高亮顯示行、設置審核狀態(tài)、多余的文字使用…替換。實現(xiàn)代碼如下:
例程30 代碼位置:光盤\TM\01\SIS\ BackGround\ CheckInfo.aspx.cs
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//高亮顯示指定行
e.Row.Attributes.Add("onMouseOver", "Color=this.style.backgroundColor;this.style.backgroundColor='#FFF000'");
e.Row.Attributes.Add("onMouseOut", "this.style.backgroundColor=Color;");
//設置審核狀態(tài),并且設置相應的顏色
if (e.Row.Cells[5].Text == "False")
{
e.Row.Cells[5].Text =StringFormat.HighLight("未審核",true);
}
else
{
e.Row.Cells[5].Text = StringFormat.HighLight("已審核", false);
}
//多余字使用...顯示
e.Row.Cells[2].Text = StringFormat.Out(e.Row.Cells[2].Text, 18);
}
}