请教一个Asp.net设计问题

ztlover 2010-06-25 11:03:30
有3个用户自定义控件分别是:UC1、UC2、UC3
有一个对象:object,有3(或N)个属性:o1、o2、o3
o1为UC1的一个属性,o2为UC2的一个属性、o3为UC3的属性
一个页面page.aspx,有一个保存的方法。

UC1、UC2、UC3是动态加载到page.aspx,也就是说通过一个配置表来配置需要加载的控件,然后动态加载到page.aspx


问题是:当page.aspx的保存方法执行是时,需要保存object对象,请问如何实现对object对象的保存呢?

...全文
191 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztlover 2010-06-28
  • 打赏
  • 举报
回复
我已经有了一个解决方案,增加一个类,用来保存object
各个控件增加两个方法:setObject(根据object的属性设置控件属性)
getObject(返回Object)
同时将控件中的保存方法删除

也就是说用一个类来实现对Object的保存,控件只是负责展示Object的属性和返回Object属性给该类。
ztlover 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 pengyi_205 的回复:]
你在每个控件里往object中写值的时候都做了哪些操作?

你在每个控件中往object中写值的时候都要访问数据库?

为什么?
[/Quote]

目前的做法是每个空间分别保存object的一部分属性到数据库!
而不是将object构建完整后再保存object
夺命胖子 2010-06-26
  • 打赏
  • 举报
回复
你在每个控件里往object中写值的时候都做了哪些操作?

你在每个控件中往object中写值的时候都要访问数据库?

为什么?
微工程 2010-06-25
  • 打赏
  • 举报
回复
没细看lz的意思,
一个ascx对应一个属性,传递,提交数据。
ztlover 2010-06-25
  • 打赏
  • 举报
回复
对于一个对象的保存需要多次访问数据库
ztlover 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pengyi_205 的回复:]
是不是UC1、UC2、UC3 三个控件的三个属性要写到
object,有3(或N)个属性:o1、o2、o3


每个控件都有一个保存方法,参数就是有三个属性的object对像

给page 定义一个事件,在动态加载控件的时候把保存方法挂接到这个事件上

三个控件都独自完成自身的对object对像保存操作。。
[/Quote]

这就是我现在的实现方式,感觉不是太好!
夺命胖子 2010-06-25
  • 打赏
  • 举报
回复
O 你的想法是对的啊,,这有什么不好的?

装饰模式
夺命胖子 2010-06-25
  • 打赏
  • 举报
回复
是不是UC1、UC2、UC3 三个控件的三个属性要写到
object,有3(或N)个属性:o1、o2、o3


每个控件都有一个保存方法,参数就是有三个属性的object对像

给page 定义一个事件,在动态加载控件的时候把保存方法挂接到这个事件上

三个控件都独自完成自身的对object对像保存操作。。




myhope88 2010-06-25
  • 打赏
  • 举报
回复
路过,帮顶下
ztlover 2010-06-25
  • 打赏
  • 举报
回复
说一下我的设计:
page.aspx中定义一个save事件,UC1、UC2、UC3中都注册这个事件,
page.aspx中实行保存时,触发save事件,则所有注册了save事件的控件都会执行save方法

但我觉得,这样实现不好,将一个对象分开存储不符合业务,且需要访问多次数据库。

我比较偏向在page.aspx中组合object对象,并保存!
但由于控件是配置实现的,可能配置的是加载UC1、UC2也有可能加载的是UC3,所以要设置object的属性比较麻烦

ztlover 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ailin84 的回复:]
你的意思是保存那个方法调用不到 object吗

可以考虑保存到viewstate中 静态类啊 Session啊其实也都可以,不过可能会引起混乱
[/Quote]
我的意思是怎么设计好一点!不论是在page.aspx中保存object还是在UC中保存都可以实现,但page.aspx中实现保存则要考虑为object设置各属性值,如果控件的加载是通过配置动态来加载的话,因为不知道加载了那些控件,做所以设置object的值比较麻烦。
shinlgienls 2010-06-25
  • 打赏
  • 举报
回复
java里 以后api保存对象到db中,

C# 不知道,保存一些对象数据,或者命名空间吧,

想象其他方式
ailin84 2010-06-25
  • 打赏
  • 举报
回复
你的意思是保存那个方法调用不到 object吗

可以考虑保存到viewstate中 静态类啊 Session啊其实也都可以,不过可能会引起混乱
ztlover 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wan1i209 的回复:]
静态类
[/Quote]
能说的详细点吗?
ztlover 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dd__dd 的回复:]
你要将这个对象保存到哪?
[/Quote]
保存到数据库中
ztlover 2010-06-25
  • 打赏
  • 举报
回复
是在page.aspx中保存object对象还是在UC1、UC2、UC3中分别保存
如果在page.aspx中保存那要考虑如何获取object对象的个属性值,如果object有n个属性,且控件的加载是动态配置的时候如何设计呢?
如果在UC1、UC2、UC3中分别保存,就要考虑保存多次,且需要一个控件save,其他的控件update。
wan1i209 2010-06-25
  • 打赏
  • 举报
回复
静态类
dd__dd 2010-06-25
  • 打赏
  • 举报
回复
你要将这个对象保存到哪?
ztlover 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 pengyi_205 的回复:]
O 你的想法是对的啊,,这有什么不好的?

装饰模式
[/Quote]

不好的原因:1、业务分离
2、多次访问数据库

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧