不知道你是怎么实现的,是在asp.net中还是在c#中,我想你是不是在datagrid中只能显示最后一行(而你想显示多行?)当你增加一行的时候你可以给改行一个默认数值,那么这一行就可以增加并显示出来了!当你保存数据的时候需要校验所有的数据是否都有意义,对于没有意义的数据(都是默认数据而不是用户录入数据)删除就可以了!

解决方案 »

  1.   

    这个问题可能和提交数据有关系.
    提交顺序:page_load -> 按钮事件
    如果你在page_load中初始化了dataset,你只能得到一条记录.
    if not page.ispostback then   你把初始化了dataset放在这里试试!!!end if
      

  2.   

    to 小树:
    你的方法我试了,是不行的~~to NorthSKY:
    是在ASP.NET中,我的方法如下:
    1、先在page_load中将datagrid帮定了一表(这表是dataset中的表,表的数据是通过SQL查询的数据库记录)
    2、在该页面中还放置一按钮,事件中动作:
       创建该dataset中的该表的新行,并付于数据。
       再add.row至表中
       完成后就再将datagrid.databind一次。
       
    结果就是不论你按多少次按钮datagrid中只显示了原有的数据和新增的一行记录。盼你们能帮帮我~谢谢
      

  3.   

    只是ADDROW到DATATABLE??你没有加到数据库里面去??
    这样当然不行了,每次点完按钮,都要重新PAGE LOAD,这样dataset重新查询数据库,当然还是老的了,
      

  4.   

    不知我上面说清楚没有,就是你点增加按钮的时候,ASP.NET首先做的是执行PAGE LOAD事件里的代码,然后才是你按钮的代码
      

  5.   

    to rabbitwy(流浪小兔) :
    当然是没有加入至数据库中啦~
    只是加入Dataset的临时表中啊~,只有确认更新了,再通过sqldataadapter进行数据库更新啊
    天啊,没有人遇到过这样的问题吗?
      

  6.   

    临时表一样啊,每次一PAGE LOAD,dataset就重新加载一次,这个不是WINFORM程序,广是定义成全局变量是没用的,除非你用SESSION
      

  7.   

    rabbitwy(流浪小兔) 说的对,你的问题就出在那,重新load时数据就丢失了,我帮你看看有没有不用session的方法
      

  8.   

    to rabbitwy(流浪小兔) :
    -----------------------------------
    呵呵,那老兄你有没有现成的解决的代码,帖来瞧瞧~~to solo108(solo108) :
    ------------------------------------
    不用session吧,搞这么复杂?
      

  9.   

    将dataset定义为模块级,dim share ds as dataset注意dataset只在page.ispostback=flase时加载一次
      

  10.   

    有办法了,不用session,但我觉得一点也不比用session简单,用客户端程序实现,datagrid在客户端显示结果是table,你可以用document.all.myTable.insertRow()的方法,这样不调用load事件也就不会重新绑定,但这样不能在需要保存的时候保存到数据库中,所以你需要在增加一个hidden控件来保存一些信息,然后在保存按钮提交时request你保存的信息一条一条添加到数据库中就可以了,不知道我说得清楚不,insertRow()地用法去查一下msdn。
      

  11.   

    to rabbitwy(流浪小兔) :
    -----------------------------------
    呵呵,那老兄你有没有现成的解决的代码,帖来瞧瞧~~==========================================================
    我以前用的是SESSION,如果你不想用的话,把dataset定义成静态变量,如static public DataSet ds;然后page load的时候给赋值,注意,这个时候加上 if (!IsPostBack) ,即只有第一次加载页面的时候才做, 试试看吧
      

  12.   

    我刚写了个简单的脚本,你再添加一个hidden控件,保存key值就可以了,上面已经说得很清楚了,大家都是高手,应该知道了,不知道这个方法适不适合你的问题。
    <form id="frm" name="frm" method="post" action="htmlpage.htm">
    <table id=mytable border=1>
    <tr>
    <td>ddddddddddd</td>
    </tr>
    </table>
    <INPUT id="Button1" type="button" value="Button" name="Button1" onclick="SubCheck()">
    </form>
    <script language="javascript">
    function SubCheck()
    {
    var dtr;
    var dtd;
    dr = document.all.mytable.insertRow();
    dtd= dr.insertCell();
    dtd.innerText = "ddd";
    dtd.bgColor = "#008000";
    }
    </script>
      

  13.   

    在新加一行到dataTable后要立即把他存到数据库里,不然再次运行在load事件里又重读数据库把新加的数据给覆盖了。
      

  14.   

    小兔和各位~
    问题解决了,因为我是在VB下写,呵呵,最终我用到了session才可以解决。
    C#写用静态的datatable应该可以。谢谢大家,如果还有更好的办法继续留言哦。