1.10 免費供求信息刪除管理頁(后臺)
1.10.1 免費供求信息刪除管理頁概述
免費供求信息的刪除主要是指刪除沒有通過審核的信息,網(wǎng)站后臺管理員刪除供求信息時,會彈出一個確認(rèn)消息框,防止用戶誤刪除信息。程序運行結(jié)果如圖1.42所示。
1.10.2 免費供求信息刪除管理頁技術(shù)分析
正常情況下,在GridView控件中完成刪除功能是沒有信息提示框的,需要程序開發(fā)人員來完成。主要通過HtmlControl.Attributes屬性的Add()方法。
Add()方法:將屬性(Attribute)添加到服務(wù)器控件的AttributeCollection對象。
語法如下:
public void Add (
string key,
string value
)
參數(shù)說明:
key:分配給集合中的新屬性(Attribute)的索引。
Value:要存儲在集合中的屬性(Attribute)。
在本模塊中實現(xiàn)的主要代碼如下:
//刪除指定行數(shù)據(jù)時,彈出詢問對話框
((LinkButton)(e.Row.Cells[7].Controls[0])).Attributes.Add("onclick", "return confirm('是否刪除當(dāng)前行數(shù)據(jù)!')");
1.10.3 免費供求信息刪除管理頁實現(xiàn)過程
本模塊使用的數(shù)據(jù)表:tb_info。
1.設(shè)計步驟
(1)在BackGround文件夾中新建一個Web窗體,默認(rèn)名稱DeleteInfo.aspx,主要用于免費供求信息的刪除管理。
(2)在Web窗體中添加一個Table表格,用于頁面的布局。
(3)在Table中添加一個Label控件,主要用于GridView控件分頁后的總頁數(shù)。主要屬性設(shè)置:AllowPaging屬性為True,即允許分頁;PageSize屬性為24,即每頁顯示24條數(shù)據(jù);AutoGenerateColumns屬性為False,即不顯示自動生成的列。
2.實現(xiàn)代碼
聲明業(yè)務(wù)層類對象和靜態(tài)字符串變量,用途參見代碼的注釋部分。在頁面的加載事件中,獲取供求信息的類型,并調(diào)用自定義GridViewBind()方法查詢相關(guān)類型的供求信息顯示在GridView控件中。值得注意的是,供求信息網(wǎng)所有免費供求信息的刪除管理都是在DeleteInfo.aspx頁面實現(xiàn)的。頁面的加載事件中實現(xiàn)代碼如下:
例程37 代碼位置:光盤\TM\01\SIS\ BackGround\ DeleteInfo.Aspx.cs
Operation operation = new Operation(); //業(yè)務(wù)類對象
static string infoType = ""; //供求信息類型
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
infoType = Request.QueryString["id"].ToString();
GridViewBind(infoType);
}
}
自定義GridViewBind()方法,用于查詢相關(guān)類型的供求信息,并且將查詢結(jié)果顯示在GridView表格控件中。實現(xiàn)代碼如下:
例程38 代碼位置:光盤\TM\01\SIS\ BackGround\ DeleteInfo.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();
//顯示當(dāng)前頁數(shù)
lblPageSum.Text = "當(dāng)前頁為 " + (GridView1.PageIndex + 1) + " / " + GridView1.PageCount + " 頁";
}
GridView控件的RowDataBound事件是在將數(shù)據(jù)行綁定到數(shù)據(jù)時發(fā)生,則在該事件下每綁定一行,就設(shè)置每行的相關(guān)功能,如高亮顯示行、設(shè)置審核狀態(tài)、多余的文字使用…替換、刪除供求信息前彈出提示框。實現(xiàn)代碼如下:
例程39 代碼位置:光盤\TM\01\SIS\ BackGround\ DeleteInfo.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;");
//設(shè)置審核狀態(tài),并且設(shè)置相應(yīng)的顏色
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);
//刪除指定行數(shù)據(jù)時,彈出詢問對話框
((LinkButton)(e.Row.Cells[7].Controls[0])).Attributes.Add("onclick", "return confirm('是否刪除當(dāng)前行數(shù)據(jù)!')");
}
}
SelectedIndexChanging事件發(fā)生在單擊某一行的“詳細(xì)信息”按鈕以后發(fā)生,本程序通過該事件查看供求信息的詳細(xì)信息。實現(xiàn)代碼如下:
例程40 代碼位置:光盤\TM\01\SIS\ BackGround\ DeleteInfo.aspx.cs
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
string id = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
Response.Write("<script> window.open('DetailInfo.aspx?id=" + id + "&&type=" + infoType +
"','','height=258,width=679,top=200,left=200') </script>");Response.Write("<script>history.go(-1)</script>");
}
PageIndexChanging事件是在單擊某一頁導(dǎo)航按鈕時,但在GridView控件處理分頁操作之前發(fā)生。通過該事件主要實現(xiàn)頁面的分頁功能。實現(xiàn)代碼如下:
例程41 代碼位置:光盤\TM\01\SIS\ BackGround\ DeleteInfo.aspx.cs
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridViewBind(infoType);
}
RowDeleting事件在單擊某一行的“刪除”按鈕時,但在GridView控件刪除該行之前發(fā)生。通過該事件主要完成供求信息的刪除功能。實現(xiàn)代碼如下:
例程42 代碼位置:光盤\TM\01\SIS\ BackGround\ DeleteInfo.aspx.cs
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
operation.DeleteInfo(GridView1.DataKeys[e.RowIndex].Value.ToString());
GridViewBind(infoType);
}