zoukankan      html  css  js  c++  java
  • 完全版权所有的DataGrid操作类及其用法 荣

    首先看最终的代码(实现排序,翻页,设置排序图标):
    // 翻页
            private void dgdList_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
            
    {
                
    this.dgCommon.PageChange(dgdList, e);
            }


            
    // 排序
            private void dgdList_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
            
    {
                
    this.dgCommon.SortDataGrid(dgdList, e);
            }


            
    // 设置排序图标
            private void dgdList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
            
    {
                
    this.dgCommon.SetItemCreated(dgdList, e);
            }




    接下来看如何实现:
    DataGrid公用操作类,提供排序,翻页,添加数据源,设置排序图标等功能。
    using System;
    using System.Collections;
    using System.Data;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Web.UI;

    namespace NameSpace
    {
        
    /// <summary>
        
    /// 控件DataGrid的通用类。
        
    /// </summary>
        
    /// <remarks>该类中包括对DataGrid的排序,添加数据源等方法。
        
    /// <author>天志</author>
        
    /// <log date="2006-05-24">创建</log>
        
    /// </remarks>

        public class DataGridCommon
        
    {
            
    声明委托

            
    声明事件

            
    /// <summary>
            
    /// 构造函数。
            
    /// </summary>
            
    /// <param name="viewStateBag">ViewState</param>
            
    /// <example>案例代码:
            
    /// <code>
            
    /// DataGridCommon dataGridCommon = new DataGridCommon(ViewState);
            
    /// </code>
            
    /// </example>
            
    /// <remarks>
            
    /// <author>天志</author>
            
    /// <log date="2006-05-24">创建</log>
            
    /// </remarks>

            public DataGridCommon(SetDataGridSourceHandler onBindEvent, SetDataGridSortHandler sortEvent, SetDataGridItemCreateHandler onItemCreateEvent)
            
    {
                bindDataGrid 
    = onBindEvent;
                sortDataGrid 
    = sortEvent;
                itemCreateDataGrid 
    = onItemCreateEvent;
            }


            
    添加DataGrid的数据源

            
    /// <summary>
            
    /// 取得排序字段。
            
    /// </summary>
            
    /// <param name="e"></param>

            public void SetItemCreated(DataGrid dgdList, DataGridItemEventArgs e)
            
    {
                
    if (itemCreateDataGrid != null)
                
    {
                    itemCreateDataGrid(dgdList, e);
                }

            }



            
    /// <summary>
            
    /// 排序。
            
    /// </summary>
            
    /// <param name="dgdList"></param>
            
    /// <param name="e"></param>

            public void SortDataGrid(DataGrid dgdList, DataGridSortCommandEventArgs e)
            
    {
                
    if (sortDataGrid != null)
                
    {
                    sortDataGrid(dgdList, e);
                }

            }


            
    /// <summary>
            
    /// 分页。
            
    /// </summary>
            
    /// <param name="dgdList"></param>
            
    /// <param name="e"></param>

            public void PageChange(DataGrid dgdList, DataGridPageChangedEventArgs e)
            
    {
                dgdList.EditItemIndex 
    = -1;
                dgdList.SelectedIndex 
    = -1;
                dgdList.CurrentPageIndex 
    = e.NewPageIndex;
                BindDataGrid(dgdList);
            }


            
    /// <summary>
            
    /// 取消编辑。
            
    /// </summary>
            
    /// <param name="dgdList"></param>
            
    /// <param name="e"></param>

            public void EditCancel(DataGrid dgdList, DataGridCommandEventArgs e)
            
    {
                dgdList.EditItemIndex 
    = -1;
                BindDataGrid(dgdList);
            }


            
    /// <summary>
            
    /// 编辑。
            
    /// </summary>
            
    /// <param name="dgdList"></param>
            
    /// <param name="e"></param>

            public void EditDataGrid(DataGrid dgdList, DataGridCommandEventArgs e)
            
    {
                dgdList.EditItemIndex 
    = e.Item.ItemIndex;
                dgdList.SelectedIndex 
    = -1;
                BindDataGrid(dgdList);
            }


            
    取得相关值域的TableCell

            
    取得相关值域的HyperLink
        }

    }



    结合页面基类使用:
    using System;
    using System.Data;
    using System.Collections;
    using System.Text.RegularExpressions;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    /// <summary>
        
    /// Web表现层类的基类。
        
    /// </summary>
        
    /// <author>天志</author>
        
    /// <log date="2006-05-24">创建</log>

        public class BasePage : System.Web.UI.Page
        
    {
            
    /// <summary>
            
    /// 处理DataGrid的对象。
            
    /// </summary>
            
    /// <author>天志</author>
            
    /// <log date="2006-05-24">创建</log>

            protected DataGridCommon dgCommon = null;

            
    public BasePage() : base()
            
    {
                
    // 注册处理DataGrid对象的方法
                dgCommon =
                    
    new DataGridCommon
                    (
                    
    new DataGridCommon.SetDataGridSourceHandler(BindDataGrid), 
                    
    new DataGridCommon.SetDataGridSortHandler(SortDataGrid), 
                    
    new DataGridCommon.SetDataGridItemCreateHandler(SetItemCreated)
                    );
            }


            
    处理DataGrid的方法
        }



    页面中的调用:

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;


        
    /// <summary>
        
    ///    订票列表页面。
        
    /// </summary>
        
    /// <author>天志</author>
        
    /// <log date="2006-05-25">创建</log>

        public class Ticket_List : BasePage
        
    {
            
    protected DataGrid dgdList;
        
            
    private void Page_Load(object sender, System.EventArgs e)
            
    {
              
                    if (!IsPostBack)
                    
    {
                        
    this.dgCommon.BindDataGrid(dgdList);
                    }

                
            }


            
    /// <summary>
            
    /// 取得DataGrid的数据源。
            
    /// </summary>
            
    /// <returns></returns>

            public override DataView GetData()
            
    {
                    
    // 取得数据源数据
                    return null;
            }

            }


            
    Web 窗体设计器生成的代码

            
    // 翻页
            private void dgdList_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
            
    {
                
    this.dgCommon.PageChange(dgdList, e);
            }


            
    // 排序
            private void dgdList_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
            
    {
                
    this.dgCommon.SortDataGrid(dgdList, e);
            }


            
    // 设置排序图标
            private void dgdList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
            
    {
                
    this.dgCommon.SetItemCreated(dgdList, e);
            }

        }


     

  • 相关阅读:
    【灵感】wifi通过wifi发送优惠信息
    Web 通信 之 长连接、长轮询(long polling)
    深入了解 Dojo 的服务器推送技术
    浅谈TCP优化
    非IE内核浏览器支持activex插件
    树莓派安装 Nginx + PHP7.0 + Pi Dashboard
    ChartView与LineSeries搭配实现曲线局部缩放功能
    QT开发(十二)——QT事件处理机制
    QT源码之Qt信号槽机制与事件机制的联系
    详解 QT 源码之 Qt 事件机制原理
  • 原文地址:https://www.cnblogs.com/admin11/p/429138.html
Copyright © 2011-2022 走看看