明细单输入时,大家用什么方式,什么控件来设计输入界面?
请大家帮顶,希望能“圆满”取得答案:-)
在WIN FORM里,那肯定是用grid,而且也是非常常见的,但我不知道在asp.net(2.0)下使用什么。
遇到的问题具体是:表单在提交前,增加或删除明细行,是不作保存的。而GridView,默认是直接与后台数据库互动操作,每一次增加删除,都会直接操作数据库,而本人想知道,除了使用数据库临时表外,是否还有其它更好的解决之道。
1、用GridView?再创建一个DataTable,通过DataBind()显示。这里有一个问题是,DataTable或是DataSet是无法直接拖到页面上的,那也就意味着无法在每次的PostBack之前,保存数据。经测试,PostBack后,再次访问GridView的DataSource是Null。
想到的解决办法有两个,一是从GridView中还原DataTable,通过遍历GridView.Rows.Cells;另外就是,将DataTable保存下来,如将其置入ViewState中。感觉不太理想。
2、直接使用HtmlTable,再通过Javascript进行操作,提交时,取出每行数据,置入HiddenField。这个方案,似乎太繁杂了点,要求也很高,若没有现成的ajax功能,完全自己写,又要至少兼容FF与IE,工作量大了点吧。
3、将主表与明细表的提交分成两个页面。
主表/明细表View
|
--------主表编辑
|
---------明细行编辑
但这样的输入界面设计,相当于硬生生的将一体的对象给拆分了,又增加了用户的操作步骤,很难令人接受。
除此之外,不知道是否有更好的解决方案。恳请大家慷慨相助!
分不是问题,可以再加(单个帖最多只能给100分,可能是等级低的限制吧)