asp.net gridview使用

来源:互联网 发布:淘宝售后客服工资算法 编辑:程序博客网 时间:2024/05/19 09:01

以前在vs2003时会用的是datagrid,vs2005后采用gridview,datagrid在vs2005后还是可以使用的,所以一直没采用gridview。目前想把之前的程序修改下,同时把datagrid改成gridview,发现还有点区别的。在datagrid时,如果某列在前端的html中设置影藏掉,后台代码中还是可以获取值得,在gridview中如果前端设置影藏掉的话后台是不会绑定数据的,因此是取不到此列值的,如果要隐藏的话可以设置this.xjdview.Columns[1].Visible = false;

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["Sort"] = "doc_id";
            ViewState["Order"] = "asc";
            Bind();
        }
    }


    public void Bind()
    {
        DataSet ds = new DataSet();
        ds = GetPage("*", ".*", "“, "1=1", "1", "30");
        DataView dv = ds.Tables[0].DefaultView;
        PagedDataSource pds = new PagedDataSource();
        AspNetPager1.RecordCount = dv.Count;
        pds.DataSource = dv;
        pds.AllowPaging = true;
        pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
        pds.PageSize = AspNetPager1.PageSize;
        this.xjdview.DataSource = pds;
        this.xjdview.DataBind();
        this.xjdview.Columns[1].Visible = false;
    }


    private DataSet GetPage(string fielda,string fieldb,string table,string strwhere, string page, string rows)
    {
        int offset, a, b;
        DataSet ds = new DataSet();
        StringBuilder sb = new StringBuilder();
        offset = (int.Parse(page) - 1) * int.Parse(rows);
        a = offset + 1;
        b = offset + int.Parse(rows);
        sb.Append("select ");
        sb.Append(fielda);
        sb.Append(" from");
        sb.Append("( select ROW_NUMBER() OVER(order by ");
        sb.Append(ViewState["Sort"]);
        sb.Append(" ");
        sb.Append(ViewState["Order"]);
        sb.Append(") as RowNum,");
        sb.Append(fieldb);
        sb.Append(" from ");
        sb.Append(table);
        sb.Append(" where 1=1 and ");
        sb.Append(strwhere);
        sb.Append(") as T");
        sb.Append(" where RowNum between ");
        sb.Append(a);
        sb.Append(" and ");
        sb.Append(b);
        ds = SqlHelper.ExecuteQuery(sb.ToString());
        return ds;
    }


    protected void Button1_Click(object sender, EventArgs e)
    {


    }
    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        Bind();
    }
    protected void xjdview_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //如果是绑定数据行
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //鼠标经过时,行背景色变
            e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
            //鼠标移出时,行背景色变
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");
            ////为gridview行添加双击事件
            //string url = "http://www.hello-code.com";
            //e.Row.Attributes.Add("ondblclick", "javascript:parent.location.href='" + url + "'");
            //为gridview列添加click事件
            //e.Row.Cells[3].Attributes.Add("onclick", "javascript:parent.location.href='" + url + "'");
        }
    }
    protected void xjdview_Sorting(object sender, GridViewSortEventArgs e)
    {
        string vortExp = e.SortExpression;
        if (ViewState["Sort"].ToString() == vortExp)
        {
            if ((string)ViewState["Order"] == "desc")
            {
                ViewState["Order"] = "asc";
            }
            else if ((string)ViewState["Order"] == "asc")
            {
                ViewState["Order"] = "desc";
            }
        }
        else
        {
            ViewState["Sort"] = e.SortExpression;
        }
        Bind();
    }
    protected void xjdview_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "lbClick")
        {
            int row = Convert.ToInt32(e.CommandArgument.ToString());
        }
    }

0 0