4月5日,遇到一个GridView很头疼的问题
实现模型:
在一张webform上有两个gridview,分别命名为gridview1和gridview2,显示如下类似数据
(table name t1)
id c1 c2 type
1 1 1 1
2 2 2 1
3 1 1 1
4 2 2 1
5 1 1 1
6 2 2 1
7 1 1 2
8 2 2 2
9 1 1 2
10 2 2 2
11 1 1 2
12 2 2 2
其中gridview1的数据源是select * from t1 where type=1
gridview2的数据源是select * from t1 where type=2
两个gridview都有选择这一列,并且在这个webform中有两个按钮,btnUP,btnDOWN,前者实现的功能是将gridview1中选中的那行数据加入到gridview2中,但是,这个时候还不能改变gridview1里的被选中的那个type的值,要在单击网页中的那个确定按钮才正式对数据库进行更新操作,因为这个模型的要求是如果用户点击了退出按钮,那么刚才的操作就自动被cancel掉了。
困难:
操作必须要在点击确定按钮以后才正式的对数据库有这个更新的操作
对象的序列化
webform的生命周期与winform的不同,这个操作在winform里很好解决,因为这个窗体直在内存中消失了生命周期才算结束,但是webform是一次请求结束就完成了一次生命周期点击确定的时候才对数据库进行操作,之前想到的办法是建立一个操作列表ArrayList,里面记录被挪动的信息,并且把这个ArrayList对象保存到ViewState中,但是,在运行时却提示这个错误
程序集“System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”中的类型“System.Web.UI.WebControls.DataControlFieldCell”未标记为可序列化。
也许是不行
象这类问题在asp.net下是否有比较成型的解决方法,总感觉自己用的方法好笨而且还不好使
本以为自己的BS经验很丰富了,没想到还是被这个问题给撞了一下
补充:
有一个基本的思路就是:在点击的时候就把上面绑定的源中的那一行加入到下面,然后在单击确定以后再进行数据库的update
而问题就是在进行了这么多次postback后,上面和下面都有哪些数据应该怎么保存
---------------------------------------------------------------
aspnetx的BI笔记系列索引:
使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能
---------------------------------------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构