web窗体中有一个gridview控件,是可编辑的,代码如下:
<asp:GridView ID="CourseView" DataSourceID="myCourseView" runat="server"  AutoGenerateColumns="false">
  <Columns>                   
     <asp:TemplateField HeaderText="开始日期" ItemStyle-Width="60px"  >
       <ItemTemplate >
           <asp:TextBox ID="txtStartDate" runat="server"  Text=' <%#Eval("StartDate","{0:yyyy-M-dd}")%>'   />
        </ItemTemplate>
     </asp:TemplateField>          
     <asp:TemplateField HeaderText="开始时间" ItemStyle-Width="50px" >
       <ItemTemplate >
        <asp:TextBox ID="txtStartTime" runat="server"  Text=' <%#Eval("StartTime")%>'  Width="50px"></asp:TextBox>
       </ItemTemplate>
    </asp:TemplateField>  
   <asp:TemplateField HeaderText="结束日期"  ItemStyle-Width="60px">
      <ItemTemplate >
       <asp:TextBox ID="txtEndDate" runat="server"  Text=' <%#Eval("EndDate","{0:yyyy-M-dd}")%>'  Width="60px"></asp:TextBox>
     </ItemTemplate>
   </asp:TemplateField>  
     <asp:TemplateField HeaderText="结束时间"  ItemStyle-Width="50px"  >
        <ItemTemplate >
          <asp:TextBox ID="txtEndTime" runat="server"  Text=' <%#Eval("EndTime")%>'  Height="14px"  Width="50px"></asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>  
                  
    <asp:TemplateField HeaderText="培训地点" ItemStyle-Width="70px"  >
      <ItemTemplate >
         <asp:TextBox ID="txtAddress" runat="server"  Text=' <%#Eval("TrainingPlace")%>' Height="14px"  Width="70px"></asp:TextBox>
     </ItemTemplate>
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="培训部门"  ItemStyle-Width="65px" >
      <ItemTemplate >
      <asp:TextBox ID="txtDepartment" runat="server"  Text=' <%#Eval("Department")%>' Height="14px"  Width="65px"> </asp:TextBox>
      </ItemTemplate>
      </asp:TemplateField> 
    <asp:TemplateField   >
       <HeaderTemplate>
        <asp:ImageButton ID="ImageButton1" ImageUrl="~/Image/add.gif" runat="server" title ="增加新课程" OnClick="CourseAdd_Click"/>
       </HeaderTemplate>
      <ItemTemplate >
         <asp:ImageButton ID="ImageButton2" runat="server"  title="删除"  ImageUrl="~/Image/delete.gif" />                     
       </ItemTemplate>
      </asp:TemplateField> 
    </Columns>
 </asp:GridView>可以看到这个girdview控件一共有7列,在后台代码的page_load事件中为gridview绑定了数据源,代码如下:
 myCourseView.SelectCommand = "select * from PLAN_DETAIL where TrainingNo='" + strTrainNo + "'order by StartDate,StartTime";
 CourseView.DataBind();
我现在实现的功能是,点击ImageButton1则gridview新增一空行,里边没有数据,我可以自己填数据,请问高手我该如何实现,有没有简单的方法,请高手给个代码例子

解决方案 »

  1.   

    用JS操作表格增加行
    insertrow,insertcell方法
      

  2.   

    表格对象可用document.getElementById('<%=CourseView.ClientID%>')取得
    具体的JS操作表格参考:
    http://blog.chinaunix.net/u1/57965/showart.php?id=688399
    http://hi.baidu.com/missing330/blog/item/ef631b828cd6bebc6d81192b.html
      

  3.   

    不用GridView,看下这个http://download.csdn.net/source/1199794
      

  4.   

    <asp:TemplateField>
    <ItemTemplate><%#Eval("....")%></ItemTemplate>
    <FooterTemplate><asp:TextBox ID="...." runat="server" Columns="20" MaxLength="14" /></FooterTemplate>
    </asp:TemplateField>
    click --- > ShowFooter
      

  5.   

      DataSet ds //获取数据
             DataRow dr = ds.Tables[0].NewRow();
            dr[0] = "0";
            dr[1] = "";
            dr[2] = "";
            dr[3] = "";
            ds.Tables[0].Rows.InsertAt(dr, 0);
            Gridview1.DataSource = ds;
            Gridview1.DataBind();
      

  6.   

    //取数据函数
    privite DataSet GetData()
    {
        string sql = &quot;select * from PLAN_DETAIL where TrainingNo='&quot; + strTrainNo + &quot;'order by StartDate,StartTime&quot;; 
        SqlDataAdapter adp = new SqlDataAdapter (sql, connetString);
        DataSet ds = new DataSet();
        adp.Fill(ds);
        return ds;
    }
    //绑定函数
    private void BindData(DataSet ds)
    {
        myCourseView.DataSourt=ds;
        CourseView.DataBind();
    }
    //add方法
    private void AddRow()
    {
        SaveGridview()//方法自己写,添加之前保存已经添加的行
         DataSet ds = GetData();
         DataRow row = ds.Table[0].NewRow();
         //row[&quot;&quot;] = &quot;&quot;;给需要初始化值的列赋值.
        BindData(ds);
    }
    思路就是这样的,我直接在网页上写的,楼主可以自己修改下