Hi,
     我想在出库单据编辑页面中,gridview多行编辑模式下,点击一 读取客户订单 按钮,
弹出一窗口 根据条件选中 多条订单明细记录 确认返回 自动按顺序添加到 母页面中Gridview
上(如果已有记录,接最后记录插入),这个需求可以实现吗?      请教了!

解决方案 »

  1.   

    请楼上赐教 js 实现方法;亦可mail : [email protected]  谢谢!
      

  2.   

    这个问题,其实看你想要什么样的效果了,如果说你想在后台进行处理,,那简单,现在父窗体创建一个虚拟表,你在子窗体如果选中两行,OK,当你点击完确认按钮后,将其信息存放到虚拟表中,记住要用SESSION存储,然后在你关闭子页面的时候通过JS脚本,让父页面进行刷新,OK,那你系统里是不是已经存有了一个临时表了,那你能不能读取他绑定到展示控件啊,,!!  通过JS的话,,同样的道理,,GV他在原页面看的话无非是一个TABLE ,那你在弹出子窗体的时候能不能给子页面传个你父页面的这个GV的编号,,然后你在你子页面点击确定的时候通过JS来给父页面的表对象添加行信息,这是无刷新的效果,,个人青睐于后者
      

  3.   

    protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("t1");
            dt.Columns.Add("t2");
            dt.Rows.Add(new object[]{"test1","test2"});
             gv.DataSource = dt.DefaultView ;     
            gv.DataBind();              
        }
    <asp:GridView runat="server" ID="gv" Width="300px" AutoGenerateColumns="false" ShowHeader="false">
    <Columns>
     <asp:BoundField DataField="t1" ItemStyle-Width="150px"/>
     <asp:BoundField DataField="t2" ItemStyle-Width="150px"/>
    </Columns>
    </asp:GridView>
    <div><input type="button" value="添加行" onclick="AddRow()"/></div>
    </form>
    <script type="text/javascript">
    var dvTest=document.getElementById("<%=gv.ClientID %>");
    function AddRow()
    {
      if(dvTest)
      {
        var row=dvTest.insertRow();
        row.insertCell(0).appendChild(document.createTextNode("第"+Flag+"-1列"));
        row.insertCell(1).appendChild(document.createTextNode("第"+Flag+"-2列"));
      }
    }
    根据window.showmodaldialog,或opener返回值添加行
    也可获取数据到hiddenfield,通过按钮click添加行
      

  4.   

    5楼兄弟的解决方案不错,我的大概思路是:
    1、在主窗体中用js打开一个客户订单窗体并查找相关的数据;2、用简单的checkbox勾选相应的数据;3、保存客户的订单ID(或者可以唯一识别的其他某个主键),用js得到客户订单的集合,可以保存在一个数组中;4、将js保存的ID或其他主键值集合作为返回值返回给主窗体;5、主窗体利用得到的返回ID(或其他主键值集合)利用string.Split()之类的方法得到客户的每一个订单ID,利用这些主键值再用DataSet模式或一个简单的泛型类得到相应的客户数据,作为数据源赋给DataGrid。