关于订单录入的操作:
    问题是:我现在要录入一条主记录 + 明细记录(一条或多条),在CS中比较好实现。请问在BS结构中该如何去实现,也就是说页面该如何设计?我目前的想法是,在一个页面中上半页的几排textbox负责主记录的输入,下半页放一个datagrid,也就是说,明细记录(多条)在这个datagrid中录入。但是同事说这样非常不好实现,所以在此请教各位高手有没有哪种更好的实现方法?或者链接?或者源码也可以。在这里谢过了。。

解决方案 »

  1.   

    感觉一个不好写分成两个页面不就ok了
    a.aspx
    textbox1.。。录入信息
    产生一个roderid
    b.aspx
    textbox2.。。明细录入
    用上一个产生的roderid生成明细id
      

  2.   

    下面这个例子,就是上半页输入,下半面显示记录的:http://www.cnblogs.com/insus/articles/1418625.html
      

  3.   

    [align=center]
    呵呵......我也正在设计这个页面,
    还请各位大虾出出主意,
    帮个忙!!!!
    谢谢了!!![/align]
      

  4.   

    一个订单,主表主要记录客户的编号及付款条件,从表中记录客户所订购的产品数量及单价, 
    由于从表中存在多行数据,在录入从表数据时,如何能够暂时保存这些数据,而在所有数据输入完成后再和主表一起保存? 
    1.在从表录入每条数据时,提交到服务器,用Session 保存DataTable,这种方式可以,但总觉得有问题,绝不采取. 
      因为业务太多,如果每个业都采用这种方式保数据,结果可以想像. 
    2.在从表录入每条数据时,提交到服务器,用ViewState保存DataTable,这种方式可以,但会降低页面传输速度, 
      也排除了这种做法. 
    3.在从表录入每条数据时,使用客户端 javascript 操作从表所用的表格,在页面提交时再用 Request.Form取出表格控 
      件中的数据,利用transaction 和主表同时提交,但其中有个问题要注意,由于采用javascript操作表格(HTML TABLE非数据 
      库的TABLE),页面在提交时必须先将表格中的数据记录下来,否则,呵呵,你就得再重输入一次数据. 
      这种方式我在个别界面中使作了,比如会计凭证,因为它在保存时需检查一些条件,而这些条件又必须和从表数据相关. 
      但是这种方式就是代码量大,如果实在没有其他办法,也是一种选择. 
    4.先将主表保存,自动产生单据编号后,再让从表的DataGrid出现,然后输入一条从表数据,保存从表一次,直到全部从表的数据 
      输入完成,这种方式虽笨,但是代码量少,简单,可控性强.但不适合那种需要在输入完成后进行检查的单据(如会计凭证), 
      因为没有其他的好方法,目前系统多数界面都是采用此方式,比起那些只做内容服务的开发商来说,做类似"进销存"或者ERP 
      项目的使用ASP.NET实在太烦心了,以前用C/S时根本就不存在这些问题,数据表格本身就是一个持久层. 
      

  5.   

    一般商品都有简码的。
    我以前的做法是。上面的一半录入主体信息。
    下面一关。默认是一行。可以增加行。
    在简码的输入部分,输入几个字符自动显示商品列表(如google的搜索框提示)
      

  6.   

    没有用控件,以前在struts中是用纯js实现的;自动增加行,你可以参考一下这个。
    http://topic.csdn.net/u/20090311/23/a593a290-83ee-40f1-b747-bf749cb7611c.html简码的输入框,那一块,可以用ajax填充一个图层。
    如果ajax用jquery的话。思路应该可以这样:   $(document).ready(function() {       //显示选择商品的层,
           //t1为下半页的表格id
           //SelectDIV的这个图层的ID
           //TxtPy 为简码输入框的ID,注意你的简码输入框应该是有多个的.
            $("#t1 input").bind("focus mousemove mouseout", function(e) {
                var id = $(this).attr("id");
                if (id == 'TxtPy') {
                    var topVal = ($(this).offset().top + 24) + "px";
                    var leftVal = $(this).offset().left + "px";
                    $('#SelectDIV').css({ left: leftVal, top: topVal }).fadeIn('slow'); //显示选择商品的图层
                } else if (id !== "SelectDIV") {
                    $('#SelectDIV').fadeOut('normal');
                } 
            });
        });    //当点击图层中的商品名(或者表格行时)时,用AJAX取数据,填充一下本行的其它文本框值,如单价等;
      

  7.   


            //简码输入框内容改变检测
            $("#t1 input").bind("keyup cut drop change", function(e) {
                var id = $(this).attr("id");
                if (id == 'TxtPy ') {
                    if ($(this).val() != "") {
                        .... //执行填充选择商品图层数据的方法
                    }
                }        });
      

  8.   

    顶10楼的,我打算用viewstate试试