中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> .NET编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· 实现类似Windows资源...
· 利用ICallbackEvent...
· win_upd2 - win_upd...
· ad2kclient - ad2kc...
· HPWuSchd2 - HPWuSc...
实现类似Windows资源管理器的DataGrid(2)
作者:不详  来源:不详  发布时间:2006-8-14 9:19:21  发布人:chinazhan

 减小字体 增大字体

     private void Page_Load(object sender, System.EventArgs e)
   {
   m_iSortColumnIdx = -1;
   m_strSortExpr = "";
   m_strSortOrder = "";
   ProcessViewState();
   PrepareColumnHeaderMap();
  
   if (!IsPostBack)
   {
   BindGridToView();
   }
   }
  
   private void PrepareColumnHeaderMap()
   {
   colHeaderMap = new Hashtable();
   int idx = 0;
   foreach (DataGridColumn col in WinExplorerView_DataGrid.Columns)
   {
   colHeaderMap[col.SortExpression] = idx++;
   }
   }
  
   private void RetrieveData()
   {
   if (null == Cache["EmployeesDS"])
   {
   string tmp = "SELECT LastName, FirstName, Title, BirthDate, City FROM Employees";
   m_sqlConnection = new SqlConnection(strConn);
   m_sqlSelectCommand = new SqlCommand(tmp, m_sqlConnection);
   m_sqlDataAdapter = new SqlDataAdapter(m_sqlSelectCommand);
   m_dsEmployees = new DataSet("Employees");
   m_sqlDataAdapter.Fill(m_dsEmployees);
   Cache.Insert("EmployeesDS", m_dsEmployees, null, DateTime.Now.AddMinutes(1), Cache.NoSlidingExpiration);
   }
   else
   {
   m_dsEmployees = (DataSet)Cache["EmployeesDS"];
   }
   }
  
   private void ProcessViewState()
   {
   if (null != ViewState["SortExpr"])
   {
   m_strSortExpr = ViewState["SortExpr"].ToString();
   }
   if (null != ViewState["SortOrder"])
   {
   m_strSortOrder = ViewState["SortOrder"].ToString();
   }
   }
  
   private void BindGridToView()
   {
   string strSort = "";
   if (0 != m_strSortExpr.Length)
   {
   strSort = m_strSortExpr;
   if (0 != m_strSortOrder.Length)
   {
   strSort += (" " + m_strSortOrder);
   }
   }
   RetrieveData();
  
   m_dvEmployees = new DataView(m_dsEmployees.Tables[0], "", strSort, DataViewRowState.CurrentRows);
   WinExplorerView_DataGrid.DataSource = m_dvEmployees;
   WinExplorerView_DataGrid.DataBind();
   }
  
   private Color GetSortColumnColor()
   {
   if (null == this.m_strSortOrder ||
   String.Empty == this.m_strSortOrder||
   0 == this.m_strSortOrder.Length)
   {
   return Color.Gold;
   }
  
   if (m_strSortOrder.CompareTo("ASC") == 0)
   {
   return Color.Gold;
   }
   else
   {
   return Color.BlanchedAlmond;
   }
   }
  
   private void OnPageIndexChange(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
   {
   WinExplorerView_DataGrid.CurrentPageIndex = e.NewPageIndex;
   BindGridToView();
   }
  
   private void OnSortView(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
   {
   m_strSortExpr = e.SortExpression;
   ViewState["SortExpr"] = m_strSortExpr;
  
   if (0 == m_strSortOrder.Length)
   {
   m_strSortOrder = "ASC";
   }
   else if (m_strSortOrder.CompareTo("ASC") == 0)
   {
   m_strSortOrder = "DESC";
   }
   else
   {
   m_strSortOrder = "ASC";
   }
   ViewState["SortOrder"] = m_strSortOrder;
   // 找到Click事件所在的列序号
   m_iSortColumnIdx = Convert.ToInt32(this.colHeaderMap[m_strSortExpr]);
   BindGridToView();
   }
  
   private void OnItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
   {
   if (e.Item.ItemType == ListItemType.Header)
   {
   int idx = 0;
   foreach (TableCell cl in e.Item.Cells)
   {
   cl.Attributes.Add("onmouseover", "showheadertip(" + idx.ToString() + ");");
   cl.Attributes.Add("onmouseout", "hideheadertip(" + idx.ToString() + ");");
   idx++;
   }
   }
   if (e.Item.ItemType == ListItemType.Item ||
   e.Item.ItemType == ListItemType.AlternatingItem)
   {
   if (-1 != m_iSortColumnIdx)
   {
   e.Item.Cells[m_iSortColumnIdx].BackColor = GetSortColumnColor();
   }
   }
   }
  
   protected override void OnPreRender(EventArgs e)
   {
   ///ToolTip文字
   int nCount = this.WinExplorerView_DataGrid.Columns.Count;
   for (int i = 0; i < nCount; i++)
   {
   Panel pnl = new Panel();
   pnl.CssClass = "gridtooltip";
   pnl.ID = "htip" + i.ToString();
   Literal lt = new Literal();
   lt.Text = this.GetHeaderTooltipText(i);
   pnl.Controls.Add(lt);
   this.Tips_PlaceHolder.Controls.Add(pnl);
   }
   base.OnPreRender (e);
   }
  
   private string GetHeaderTooltipText(int iColIdx)
   {
   switch (iColIdx)
   {
   case 0:
   return "职员的姓";
   case 1:
   return "职员名字";
   case 2:
   return "职员的职位";
   case 3:
   return "出生日期";
   case 4:
   return "居住地";
   default:
   throw new ArgumentException("无效地列序号", "Index");
   }
   }
  
  #region Web Form Designer generated code
   override protected void OnInit(EventArgs e)
   {
   InitializeComponent();
   base.OnInit(e);
   }
  
   private void InitializeComponent()
   {
   this.WinExplorerView_DataGrid.ItemCreated +=
   new System.Web.UI.WebControls.DataGridItemEventHandler(this.OnItemCreated);
   this.WinExplorerView_DataGrid.PageIndexChanged +=
   new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.OnPageIndexChange);
   this.WinExplorerView_DataGrid.SortCommand +=
   new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.OnSortView);
   this.Load += new System.EventHandler(this.Page_Load);
   }
  #endregion
  }
  }
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .