在开发中遇到这样的问题,需要在一张表单里面同时输入多条数据,然后一次性提交到数据库中,而且数据的数目是不定的。就像是财务软件中对合同的处理:一张合同里面可能有很多的条款金额,每条条款在数据库中表现为一条数据。比如开始的时候先确定表单里面需要输入的记录数目,比如10条,然后生成一个界面让用户输入数据,输入完成以后在一次性的提交到数据库中。原先考虑用datalist来实现 可是datalist必须实现帮定数据集才能显示,所以好像不行。不知道大家有没有遇到过这样的情况。用c/s结构很好实现的,用b/s结构就有困难了。但是因为一定要用b/s结构  所以请大家帮帮忙 给点意见 谢谢!!分不够可以再加!

解决方案 »

  1.   

    用datagrid实现
    再绑定datagrid是添加如下代码
    for(int i=0;i< rowCount;i++)
    {
    DataRow dr;
    dr=ds.Tables[0].NewRow();
    dr["Id"]=0;
    dr["colname1"]="";
    dr["colname2"]="";
    dr["colname3"]=DBNull.Value;
    dr["colname4"]="";

    ds.Tables[0].Rows.Add(dr);
    }
      

  2.   

    能写一个demo吗?  不是很明白  谢谢!
      

  3.   

    用DataSet来保存每次添加的数据,最后更新数据库不就行了.
      

  4.   

    兄台的意思是要动态出现textbox的数目吧!!!
      

  5.   

    基本上是这样吧   因为网页上我也想不出来除了textbox还有什么控件可以输入数据了  网页上的datagrid是不能输入数据的
      

  6.   

    还有一个就是我现在是用了datalist来增加的  可是没有数据  这么也显示不出来空的项
      

  7.   

    这是datagrid的代码
    <asp:datagrid id="dg1" runat="server" CssClass="dg" Width="980px" AutoGenerateColumns="False">
    <Columns>
    <asp:BoundColumn Visible="False" DataField="id" ReadOnly="True"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="按主要模块">
    <HeaderStyle Width="250px"></HeaderStyle>
    <ItemTemplate>
    <asp:TextBox id=dg2txt1 runat="server" Width="70px" CssClass="textboxnb" Text='<%# DataBinder.Eval(Container.DataItem, "Mode_Name") %>'>
    </asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="进展评估">
    <HeaderStyle Width="350px"></HeaderStyle>
    <ItemTemplate>
    <asp:TextBox id=dg2txt2 runat="server" Width="70px" CssClass="textboxnb" Text='<%# DataBinder.Eval(Container.DataItem, "Eval_Msg") %>'>
    </asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="存在主要问题">
    <HeaderStyle Width="380px"></HeaderStyle>
    <ItemTemplate>
    <asp:TextBox id=dg2txt3 runat="server" Width="100px" CssClass="textboxnb" Text='<%# DataBinder.Eval(Container.DataItem, "Problem") %>'>
    </asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle CssClass="dgpager"></PagerStyle>
    </asp:datagrid>
      

  8.   

    这是绑定的核心代码
    DataSet ds = new DataSet();

    ds = getdata(); --这里换成你自己绑定代码
    int rowCount=10;

    for(int i=0;i< rowCount;i++)
    {
    DataRow dr;
    dr=ds.Tables[0].NewRow();
    dr["Id"]=0;
    dr["Mode_Name"]="";
    dr["Eval_Msg"]="";
    dr["Problem"]="";

    ds.Tables[0].Rows.Add(dr);
    }
    dg.DataSource=ds;
    d2.DataBind();
      

  9.   

    多谢ark_matrix(matrix) 但是我要输入的东西太多了  还是考虑用其他方法实现了  谢谢!