用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(); } }
作者:today4king
出处:https://www.cnblogs.com/jinzhao/archive/2009/06/07/1497961.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架