供求信息网(23)

1.9 免费供求信息审核页(后台)

1.9.1 免费供求信息审核页概述

任何用户都可以免费发布供求信息,如果用户发布的供求信息属于不道德、不健康以及违法的信息,那么将会造成不可估计的损失。所以后台管理人员可以对供求信息进行审核,审核通过的供求信息可以显示在分类相应的页面中,否则,信息不能发布。免费供求信息审核页面如图1.40所示。

1.9.2 免费供求信息审核页技术分析

免费供求信息审核页中,主要用到了GridView表格中的3个典型功能,在此对其进行技术分析。表格中3个典型功能的应用如下:

? 将0和1替换为未审核和已审核状态类型。

由于在数据库中审核和未审核的供求信息是用数字表示(“0”表示未审核,“1”表示已经通过审核)的,但在显示时不能显示为“0”或者“1”,要使软件达到人性化效果,必须将其转换成相应的汉字。

? 表格中多余的文字使用…代替。

由于供求信息的内容涉及的文字数量很大,不能在一个单元格中显示该条供求信息的所有内容,否则界面不但不美观,而且看上去很乱,因此本程序指定显示18个字符,超过的使用…代替。

? 表格中高亮显示行。

如果表格显示的数据行数在3行或5行之内,可以不用高亮显示行功能;如果数据量很大,在10或20行以上的数据,用户时间长了很容易看串行,则需要使用高亮显示行。高亮显示行是当鼠标移动到某行时,该行显示特殊颜色,移开后颜色恢复,如图1.41所示。

实现代码如下:

例程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;");

        //设置审核状态,并且设置相应的颜色

        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  免费供求信息审核页实现过程

本模块使用的数据表:tb_info。

1.设计步骤

(1)在网站的根目录下创建BackGround文件夹,用于存放网站后台管理Web窗体。

(2)在BackGround文件夹中新建一个Web窗体,命名为CheckInfo.aspx,主要用于免费供求信息的审核。

(3)在Web窗体中添加一个Table,用于页面的布局。

(4)在Table中添加一个Label控件,主要用于控制GridView控件分页后的总页数。主要属性设置:AllowPaging属性为True,即允许分页;PageSize属性为24,即每页显示24条数据;AutoGenerateColumns属性为False,即不显示自动生成的列。

(5)在Table中添加3个RadioButton控件,分别用于控制显示已审核供求信息、显示未审核供求信息、显示同类型所有供求信息。

(6)在Table中添加一个GridView控件,主要用于显示供求信息及对供求信息的审核操作。

2.实现代码

声明全局静态变量和类对象,用途参见代码中注释部分。在页面的加载事件中,获取供求信息的类型,并调用自定义GridViewBind()方法查询相关类型的供求信息显示在GridView控件中。值得注意的是,供求信息网所有分类供求信息审核都是在CheckInfo.aspx页面实现的。页面的加载事件中实现代码如下:

例程28  代码位置:光盘\TM\01\SIS\ BackGround\ CheckInfo.aspx.cs

Operation operation = new Operation(); //业务层类对象

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表格控件中。实现代码如下:

例程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();

    //显示当前页数

    lblPageSum.Text = "当前页为 " + (GridView1.PageIndex + 1) + " / " + GridView1.PageCount + " 页";

}

GridView控件的RowDataBound事件是在将数据行绑定到数据时发生,那么在该事件下每绑定一行,就设置每行的相关功能,如高亮显示行、设置审核状态、多余的文字使用…替换。实现代码如下:

例程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;");

        //设置审核状态,并且设置相应的颜色

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

    }

}

 

读书导航