GridViewHelper.cs

出自ProgWiki

跳轉到: 導航, 搜尋

GridViewHelper.cs,模組化,用以簡化一些GridView相關的共用的Code

using System;
using System.Collections.Generic;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
/// <summary>
/// GridViewHelper 的摘要描述
/// </summary>
public class GridViewHelper
{
	public GridViewHelper()
	{
		//
		// TODO: 在此加入建構函式的程式碼
		//
	}
 
    public static void setHeaderStyle(object sender, GridViewRowEventArgs e)
    {
        e.Row.CssClass="RowHead";
 
        int index = e.Row.Cells.Count;
 
        Literal Literal1 = new Literal();
        Literal1.EnableViewState = false;
        Literal1.Text = e.Row.Cells[index - 1].Text +"</th></tr><tr>";
        e.Row.Cells[index - 1].Controls.Add(Literal1);
        e.Row.Cells.Add(new TableHeaderCell());
        e.Row.Cells[index].Attributes.Add("colspan", index.ToString());
        e.Row.Cells[index].Style.Add(HtmlTextWriterStyle.Height, "5px");
        e.Row.Cells[index].Style.Add(HtmlTextWriterStyle.BackgroundColor, "#FFFFFF");
    }
 
    public static void setDataRowStyle(object sender, GridViewRowEventArgs e)
    {
        e.Row.Style.Add(HtmlTextWriterStyle.Height, "35px");
 
        //自動變色機制
        if (e.Row.RowIndex % 2 == 1)
        {
            //單數資料列
            e.Row.CssClass="Row1";
            e.Row.Attributes.Add("onmouseout", "$(this).addClass('Row1').removeClass('RowOver');");
            e.Row.Attributes.Add("onmouseover", "$(this).addClass('RowOver').removeClass('Row1');");
        }
        else
        {
            //雙數資料列
            e.Row.CssClass = "Row2";
            e.Row.Attributes.Add("onmouseout", "$(this).addClass('Row2').removeClass('RowOver');");
            e.Row.Attributes.Add("onmouseover", "$(this).addClass('RowOver').removeClass('Row2');"); 
        }
    }
 
    public static void setSorting(object sender, GridViewSortEventArgs e, StateBag ViewState)
    {
        //以下的code出自
        // http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/932a0f2b-f777-4621-950a-6ed3d7c39139
 
        GridView GridView1 = sender as GridView;
 
        if (ViewState["SortDirection"] == null)
        {
            ViewState["SortDirection"] = SortDirection.Descending;
        }
        for (int i = 0; i <= ((GridView)sender).Columns.Count - 1; i++)
        {
            string strHeaderText = GridView1.Columns[i].HeaderText;
            strHeaderText = strHeaderText.Replace("▲", "").Replace("▼", "");
            GridView1.Columns[i].HeaderText = strHeaderText;
        }
 
        int Columns_i = 0;
        for (int i = 0; i <= GridView1.Columns.Count - 1; i++)
        {
            if (e.SortExpression == GridView1.Columns[i].SortExpression)
            {
                Columns_i = i;
                if (ViewState["SortDirection"].ToString() == SortDirection.Ascending.ToString())
                {
                    e.SortDirection = SortDirection.Descending;
                    GridView1.Columns[i].HeaderText = GridView1.Columns[i].HeaderText + "▼";
                    ViewState["SortDirection"] = SortDirection.Descending;
                }
                else
                {
                    e.SortDirection = SortDirection.Ascending;
                    GridView1.Columns[i].HeaderText = GridView1.Columns[i].HeaderText + "▲";
                    ViewState["SortDirection"] = SortDirection.Ascending;
                }
            }
        }
 
        //補上必要的code
        ViewState["SortField"] = e.SortExpression;
    }
 
    public static void setDataBinding(GridView GridView1, SqlDataSource SqlDataSource1, StateBag ViewState)
    {
        using (DataView dv = SqlDataSource1.Select(new DataSourceSelectArguments()) as DataView)
        {
 
            if ((ViewState["SortDirection"] == null) ||
                    (ViewState["SortField"] == null))
            {
                GridView1.DataSource = dv;
                GridView1.DataBind();
            }
            else
            {
                //using (DataView dv = ds.Tables[0].DefaultView)
                {
 
                    string strSort = ViewState["SortField"].ToString();
                    if (ViewState["SortDirection"].ToString() == SortDirection.Descending.ToString())
                        strSort += " DESC";
 
                    dv.Sort = strSort;
 
                    GridView1.DataSource = dv;
                    GridView1.DataBind();
                }
            }
        }
    }
}
個人工具
名字空間
變換
動作
導航
分類
其他
技術類News或部落格
工具箱