我希望实现这样的功能:
页面上有一个按钮,按一次在下面的表格中增加一行
每行中包括一个按钮和一个文本框,当单击那行中的按钮时就把那行从页面上删去请问该怎么实现?
请讲得详细点,我是初学者
最好有类似的例子参考,谢谢。

解决方案 »

  1.   

    <%@ Page language="c#" Codebehind="UpLoadFile.aspx.cs" AutoEventWireup="false" Inherits="WebApplication3.MultiAttchments" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <script>
    function AddAttachments()
    {
    document.getElementById('attach').innerText = "继续添加文件";

    tb = document.getElementById('attAchments');
    newRow = tb.insertRow();
    newRow.insertCell().innerHTML = "<input name='File' size='50' type='file'>&nbsp;&nbsp;<input type=button value='删除' onclick='delFile(this.parentElement.parentElement.rowIndex)'>";
    }
    function delFile(index)
    {
    document.getElementById('attAchments').deleteRow(index);
    tb.rows.length > 0?document.getElementById('attach').innerText = "继续添加文件":document.getElementById('attach').innerText = "添加文件";
    }
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <TABLE height="603" cellSpacing="0" cellPadding="0" width="171" border="0" ms_2d_layout="TRUE">
    <TR vAlign="top">
    <TD width="171" height="603">
    <form id="form1" method="post" runat="server" enctype="multipart/form-data">
    <TABLE height="154" cellSpacing="0" cellPadding="0" width="591" border="0" ms_2d_layout="TRUE">
    <TR vAlign="top">
    <TD width="10" height="15"></TD>
    <TD width="16"></TD>
    <TD width="565"></TD>
    </TR>
    <TR vAlign="top">
    <TD height="5"></TD>
    <TD colSpan="2">
    <div><table id="attAchments">
    </table>
    </div>
    </TD>
    </TR>
    <TR vAlign="top">
    <TD colSpan="2" height="14"></TD>
    <TD>

    <IMG src="icoAddFl.gif">
    <A id="attach" title="如果您要发送多个文件,您只需多次点击“继续添加文件”即可, 要注意文件总量不能超过发送限制的大小。" onclick="AddAttachments();"
    href="javascript:;" name="attach">添加文件</A></TD>
    </TR>
    <TR vAlign="top">
    <TD height="19"></TD>
    <TD colSpan="2">
    <br>
    </TD>
    </TR>
    <TR vAlign="top">
    <TD height="19"></TD>
    <TD colSpan="2">
    <br>
    </TD>
    </TR>
    <TR vAlign="top">
    <TD height="19"></TD>
    <TD colSpan="2">
    <br>
    </TD>
    </TR>
    <TR vAlign="top">
    <TD height="19"></TD>
    <TD colSpan="2">
    <br>
    </TD>
    </TR>
    <TR vAlign="top">
    <TD height="19"></TD>
    <TD colSpan="2">
    <br>
    </TD>
    </TR>
    <TR vAlign="top">
    <TD height="25"></TD>
    <TD colSpan="2">
    <asp:Button id="btnSend" runat="server" Text=" 上传 "></asp:Button></TD>
    </TR>

    <br>
    </TABLE>
    </form>
    </TD>
    </TR>
    </TABLE>
    </body>
    </HTML>
      

  2.   

    二楼是帖代码狂人啊?动态加载控件,一般使用的是PlaceHolder容器控件,该控件可以作为页面的一个容器并能够动态的加载其它控件。
    其实动态添加控件,难的是必须在page_load里添加一些代码,确保新生成的控件刷新时不会消失。使用原理是viewstate。
    我也开始帖代码了,^_^:好用的代码。
    aspx页面:
    <%@ Page language="c#" Codebehind="ActiveAddControl.aspx.cs" AutoEventWireup="false" Inherits="AddControls.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:Button id="Addbtn" style="Z-INDEX: 101; LEFT: 344px; POSITION: absolute; TOP: 256px" runat="server" Text="Addcontrol"></asp:Button>
    <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 232px; POSITION: absolute; TOP: 256px" runat="server" Text="刷新页面"></asp:Button>
    <asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
    </form>
    </body>
    </HTML>
    cs页面:
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (ViewState["AddControl"]!= null)

    DropDownList DropDown = new DropDownList(); 
    PlaceHolder1.Controls.Add(DropDown);
    DropDown.ID="ControlID"; 

    }
                       
                       private void Addbtn_Click(object sender, System.EventArgs e)
    {
    DropDownList DropDown = new DropDownList(); 
    PlaceHolder1.Controls.Clear(); 
    PlaceHolder1.Controls.Add(DropDown); 
    DropDown.ID="ControlID"; 
    DropDown.Width=200;
    DropDown.Items.Add(new ListItem("北京","0"));
    DropDown.Items.Add(new ListItem("上海","1"));
    DropDown.Items.Add(new ListItem("河北","2"));
    ViewState["AddControl"] = true; 
    }
      

  3.   

    谢谢两位,不过我希望用控件而不是script来实现这个功能peng_0_0_1983,谢谢你的代码,不过我运行时出错了,错误信息如下:
    说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 分析器错误信息: 未能加载类型“AddControls.WebForm1”。请问应该怎么解决呢?
    谢谢
      

  4.   

    你看我的aspx文件源码头两行:
    <%@ Page language="c#" Codebehind="ActiveAddControl.aspx.cs" AutoEventWireup="false" Inherits="AddControls.WebForm1" %>
    AddControls是命名空间,后台cs类名是WebForm1。后台代码修改你的命名空间和类名即可。
    刚才为了省事。
    后台cs全部源代码:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace AddControls
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
    protected System.Web.UI.WebControls.Button Addbtn;

    private void Page_Load(object sender, System.EventArgs e)
    {
    if (ViewState["AddControl"]!= null)

    DropDownList DropDown = new DropDownList(); 
    PlaceHolder1.Controls.Add(DropDown);
    DropDown.ID="ControlID"; 

    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Addbtn.Click += new System.EventHandler(this.Addbtn_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Addbtn_Click(object sender, System.EventArgs e)
    {
    DropDownList DropDown = new DropDownList(); 
    PlaceHolder1.Controls.Clear(); 
    PlaceHolder1.Controls.Add(DropDown); 
    DropDown.ID="ControlID"; 
    DropDown.Width=200;
    DropDown.Items.Add(new ListItem("北京","0"));
    DropDown.Items.Add(new ListItem("上海","1"));
    DropDown.Items.Add(new ListItem("河北","2"));
    ViewState["AddControl"] = true; 
    }
    }
    }
      

  5.   

    不好意思啊,还是不行分析器错误 
    说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 分析器错误信息: 未能加载类型“AddControls.WebForm1”。我菜得很,请再帮帮忙好吗?
      

  6.   

    //添加表格行
    function In_Row()
    {
    var i = DataGrid1.getElementsByTagName('tr');
    var newRow = DataGrid1.insertRow(i.length);
    for(c=0;c<DataGrid1.rows[0].cells.length;c++)
    {
    if(c==2)
    {newCell.innerHTML = '<input type="button" value="aaadf" runat = server>'}
    else
    {
    newCell = newRow.insertCell(c);
    newCell.innerHTML = '<input type="text" value="sss" runat = server>';
    }
    }
    }