将你的DataTable/DataSet保存到Session中

解决方案 »

  1.   

    acewang:你的意思是说用datagrid实现,绑定到datatable,
    只是把datatable的记录保存到
    session中,然后再给datagrid动态添加行,
    添加完后,再将datagrid的记录刷新一下,将datatable里的数据显示出来。不知我理解对不对?
      

  2.   

    做一个table,隐藏行,提交时,再一行行提交
    这种方法就是有点笨!
    不过有控件可以解决这问题:http://www.infragistics.com/
      

  3.   

    隐藏行是可以,我也曾用过table来实现,但是,如果输入很多条记录,恰好隐藏的行数不够,嗬嗬!好像就不灵了。
      

  4.   

    用dataTable对应到dataGrid上面,把这个dataTable保存到Session里面。等用户提交时再运用dataGrid的更新方法统一更新。
      

  5.   

    DataTable/DataSet保存到临时内存表如Session里
      

  6.   

    如果datagrid最开始绑定到某个dataset中某个datatable的,那么一旦dataset里面有数据,该开始就不能显示一个空白的表格如果最开始dataset并没有跟数据库相连,datagrid里输入的值好像不能保存到datatable里,
    至少我还没有找到这种情况下,怎么把模板列中得知写入到datatable脑袋都大了,大家想想办法吧!
      

  7.   

    那位好心人能自己做个简单的例子,我实在是想不出办法了,急死了,元旦前就得交活呀!
    [email protected]
    万分感激!
      

  8.   

    <%@ Page language="c#"%>
    <%@ Import Namespace="System"%>
    <%@ Import Namespace="System.Data"%>
    <script language="C#" runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
    ArrayList arr = new ArrayList();
    arr.Add("<font color=red>hello...</font>");

    // 在此处放置用户代码以初始化页面
    DataTable dt = new DataTable();
    dt.Columns.Add("编号");
    dt.Columns.Add("姓名");
    dt.Columns.Add("年龄");
    for(int i=0;i<20;i++)
    {
    DataRow row = dt.NewRow();
    row[0] = i+1;
    dt.Rows.Add(row);
    }
    this.DataGrid1.DataSource=dt;
    this.DataBind();
    }
    override protected void OnInit(EventArgs e)
    {
    this.Load += new System.EventHandler(this.Page_Load);
    }
    </script>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>CSDNTest</title>
    <meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="CSDNTest" method="post" runat="server">
    <asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:BoundColumn DataField="编号" HeaderText="编号"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="姓名">
    <ItemTemplate>
    <asp:TextBox runat="server" Width="100%"></asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="年龄">
    <ItemTemplate>
    <asp:TextBox runat="server" Width="100%" ID="Textbox1" NAME="Textbox1"></asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>
    </form>
    保存时可以用,box=(TextBox)DataGrid1.Items[i].Cells[j].Controls[index];box.Text
    </body>
    </HTML>
      

  9.   

    谢谢shang515,你这个好像是在页面打开的时候,一次性创建了一个20行的表,但 我需要的是能动态添加行的表。而且所有记录在输入全部完成之前不提交,
    最后一次性全部提交,中间需要将记录暂存在某个地方。
      

  10.   

    <table cellspacing="0" cellpadding="5" rules="all" width="100%" bordercolor="#bdbabd" border="1" style="border-color:#bdbabd;border-width:1px;border-style:solid;font-size:9pt;border-collapse:collapse;">
    <tr>
    <td align="center">上厕所</td>
    <td align="center">拉屎</td>
    <td align="center">擦屁股</td>
    </tr>
    <tr>
    <td onclick="靠(this)" height="28" width="33%"></td>
    <td onclick="靠(this)"></td>
    <td onclick="靠(this)"></td>
    </tr>
    <tr>
    <td onclick="靠(this)" height="28" width="33%"></td>
    <td onclick="靠(this)"></td>
    <td onclick="靠(this)"></td>
    </tr>
    <tr>
    <td onclick="靠(this)" height="28" width="33%"></td>
    <td onclick="靠(this)"></td>
    <td onclick="靠(this)"></td>
    </tr>
    </table><script language="javascript">
    function 靠(对象)
    {
    if(对象.innerHTML == 对象.innerText)
    {
    对象.innerHTML = "<input style=\"width:100%\" value=\""+ 对象.innerHTML +"\" onblur=\"嘻嘻(this)\">";
    }
    }

    function 嘻嘻(对象)
    {
    对象.parentNode.innerHTML = 对象.value;
    }
    </script>
      

  11.   

    分值太少呀……呵呵呵……
    发扬一次共产主义精神……1、首先在页面中加入下面内容;
    <script>
    var count = 0;
    function add()
    {
    var row = element.insertRow();
    var cell = row.insertCell();
    cell.innerHTML = "<input name='name"+count+"'>";
    cell = row.insertCell();
    cell.innerHTML = "<input name='age"+count+"'>";
    count ++;
    txtCount.value = count;
    }
    </script>
    <input type="hidden" name="txtCount" id="txtCount">
    <input type=button onclick="add()">
    2、把你的DataGrid的ID设置为element,自动绑定设为假,并添加两列“姓名”和“年龄”
    3、为DataGrid绑定一个空的数据源,也是说在页面运行出来之后,
    只需要看到“姓名”和“年龄”列的列头就可以
    4、添加一服务器保存按钮
    5、保存按钮事件(最主要的)
    使用Request["txtCount"]取出来添加多少行
    使用循环取出所有添加的值,
    取法是Request["name"+i.ToString()]
    Request["age"+i.ToString()]
    下面怎么处理,就不要问我了……
      

  12.   

    分少可以在加,只要问题能解决,不惜一切了!只不过我刚来这地方没几次,可用分不多,还请包涵,等解决了,再多给!我刚学.net没几天,还请大家多帮忙,正好要做项目,还有不少问题呢!