正文

供求信息網(wǎng)(25)

ASP.NET項目開發(fā)案例全程實錄(第2版) 作者:明日科技


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);

}

 


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號