zoukankan      html  css  js  c++  java
  • 用List绑定GridView的简单辅助类

    使用前提,知道gridview通用的扩展方法,知道反射的知识。

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Collections;
    using System.ComponentModel;
    using System.Collections.Generic;
    using System.Reflection;
    
    /// <summary>
    ///MyGridView 的摘要说明
    /// </summary>
    public class MyGridView
    {
        GridView gv;
        IList list;
        Type t;
        object obj;
        public MyGridView( GridView gv,IList list,object obj)
        {
            this.gv = gv;
            this.list = list;
            this.obj = obj;
            if (list.Count > 0)
            {
                t = list[0].GetType();
            }
        }
    
    
        #region BindEvents
    
        public void BindEvents()
        {
            gv.RowEditing += new GridViewEditEventHandler(gv_RowEditing);
            gv.RowCancelingEdit += new GridViewCancelEditEventHandler(gv_RowCancelingEdit);
            gv.RowDeleting += new GridViewDeleteEventHandler(gv_RowDeleting);
            gv.RowUpdating += new GridViewUpdateEventHandler(gv_RowUpdating);
        }
    
        void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            int i = 0;
            PropertyInfo[] proInfo = t.GetProperties();
            foreach (TableCell cell in gv.Rows[e.RowIndex].Cells)
            {
                TextBox txtBox = cell.Controls[0] as TextBox;
                if (txtBox != null)
                {
                    proInfo[i].SetValue(list[e.RowIndex], txtBox.Text, null);
                }
                
                i++;
            }
            obj.GetType().GetMethod("Save").Invoke(obj, null);
            
            gv.EditIndex = -1;
        }
    
        void gv_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            list.RemoveAt(e.RowIndex);
        }
    
        void gv_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gv.EditIndex = -1;
        }
    
        void gv_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gv.EditIndex = e.NewEditIndex;
        }
        #endregion
    
        public void BindData()
        {
            gv.DataSource = list;
            gv.DataBind();
        }
    }
    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Android 数据库框架OrmLite的使用(二)
    Fragment响应返回键
    jQuery判断当前元素显示状态并控制元素的显示与隐藏
    Android UI设计中一些不错的示例及第三方控件
    js数组操作总结
    Easyui datagrid 设置内容超过单元格宽度时自动换行显示
    Easyui datagrid 扩展单元格textarea editor
    Easyui datagrid combobox输入框非法输入判断与事件总结
    Tomcat 参数配置相关
    单元测试_JUnit常用单元测试注解介绍及代码演示
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1497961.html
Copyright © 2011-2022 走看看