• ASPX审核功能实现


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

    SelectedIndexChanging事件发生在单击某一行的“审核/取消”按钮以后发生,本程序通过该事件实现对供求信息的审核和取消工作。实现代码如下:

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

    protected void GridView1_SelectedIndexChanging(object sender, 
    GridViewSelectEventArgs e)
    {
    string id = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
    operation.UpdateInfo(id, infoType);
    //按审核类型绑定数据(3种类别:全部显示(-1),显示未审核(0),显示审核(1))
    switch (CheckType)
    {
    case -1:
    GridViewBind(infoType);
    break;
    case 0:
    GridView1.DataSource = operation.SelectInfo(infoType, false);
    GridView1.DataBind();
    break;
    case 1:
    GridView1.DataSource = operation.SelectInfo(infoType, true);
    GridView1.DataBind();
    break;
    }
    }

    RowDeleting事件是在单击某一行的“详细信息”按钮时,但在GridView控件删除该行之前发生。在此不是实现删除,只是通过删除命令完成查看详细供求信息的功能。实现代码如下:

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

     protected void GridView1_RowDeleting(object sender, 
    GridViewDeleteEventArgs e)
    {
    string id = GridView1.DataKeys[e.RowIndex].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事件是在单击某一页导航按钮时,但在GridView控件处理分页操作之前发生。通过该事件主要实现页面的分页功能。另外,在本程序主要实现了按审核、未审核等情况显示供求信息,则需要按相应情况的数据源绑定GridView控件,否则程序不会报错,但会出现乱分页现象。实现代码如下:

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

    protected void GridView1_PageIndexChanging(object sender, 
    GridViewPageEventArgs e)
    {
    //分页设置
    GridView1.PageIndex = e.NewPageIndex;
    //按审核类型绑定数据(3种类别:全部显示(-1),显示未审核(0),显示审核(1))
    switch (CheckType)
    {
    case -1:
    GridViewBind(infoType);
    break;
    case 0:
    GridView1.DataSource = operation.SelectInfo(infoType, false);
    GridView1.DataBind();
    break;
    case 1:
    GridView1.DataSource = operation.SelectInfo(infoType, true);
    GridView1.DataBind();
    break;
    }
    //显示当前页数
    lblPageSum.Text = "当前页为 " + (GridView1.PageIndex +
    1) + " / " + GridView1.PageCount + " 页";
    }

    单击“已经审核供求信息”按钮,显示已经审核供求信息。实现代码如下:

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

    protected void rdoBtnCheckTrue_CheckedChanged(object sender, EventArgs e)
    {
    GridView1.PageIndex = 0;
    GridView1.DataSource = operation.SelectInfo(infoType, true);
    GridView1.DataBind();
    CheckType = 1;
    //显示当前页数
    lblPageSum.Text = "当前页为 " + (GridView1.PageIndex +
    1) + " / " + GridView1.PageCount + " 页";
    }

    单击“未审核供求信息”按钮,显示未审核供求信息。实现代码如下:

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

    protected void rdoBtnCheckFalse_CheckedChanged(object sender, EventArgs e)
    {
    GridView1.PageIndex = 0;
    GridView1.DataSource = operation.SelectInfo(infoType, false);
    GridView1.DataBind();
    CheckType = 0;
    //显示当前页数
    lblPageSum.Text = "当前页为 " + (GridView1.PageIndex
    + 1) + " / " + GridView1.PageCount + " 页";
    }

    单击“显示同类型所有供求信息”按钮,显示同类型所有供求信息。实现代码如下:

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

    protected void rdoBtnCheckAll_CheckedChanged(object sender, EventArgs e)
    {
    GridView1.PageIndex = 0;
    GridViewBind(infoType);
    CheckType = -1;
    //显示当前页数
    lblPageSum.Text = "当前页为 " + (GridView1.PageIndex +
    1) + " / " + GridView1.PageCount + " 页";
    }
    【责任编辑:夏书 TEL:(010)68476606】
  • 相关阅读:
    Variational Autoencoders and Nonlinear ICA: A Unifying Framework
    各层的特征的差异性
    TriggerBN +
    Exponential family of distributions
    个人加分项
    对老师的建议
    2021.6.19
    2021.6.18
    2021.6.17
    2021.6.16
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/1674654.html
Copyright © 2020-2023  润新知