要求:
1、在Repeater的ItemTemplate列的(TextBox)Text1输入信息后如何用javascript或者后台事件触发Repeater新增一行?最好是页面无刷新状态下操作。
2、如何循环找到Repeater的ItemTemplate的textbox将其数据逐一取出写入数据库?
前台代码:
<table cellspacing="1" class="style1">
  <asp:Repeater ID="Rep1" runat="server" OnItemCommand="Rep1_ItemCommand">
  <ItemTemplate>
  <tr>
  <td>
  <%# Container.ItemIndex + 1%>
  </td>
  <td>
  <asp:TextBox ID="Text1" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox><img
  alt="" src="Images/logo.jpg" />
  </td>
  <td>
  <asp:TextBox ID="Text2" runat="server" Text='<%# Bind("Email") %>'></asp:TextBox>
  </td>
  </tr>
   </ItemTemplate>
  </asp:Repeater><br />
  <asp:Button ID="btn_Get" runat="Server" OnClick="btn_Get_Click" Text="获取数据" />
  <tr>
  <td>  </td>
  </tr>
  </table> 后台代码:
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) 
            { 
                this.Rep1.DataSource = createtable();
                this.Rep1.DataBind();
            }
        }
     protected DataTable createtable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            dt.Columns.Add("Email");            for (int i = 0; i <= 1; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Name"] = "";
                dr["Email"] = "";
                dt.Rows.Add(dr);
            }
            return dt;
        }

解决方案 »

  1.   


    1.第一种方法,这个可以用Jquery,很简单,给TextBox相同的Name....Button也一样。。并给button绑定click事件。事件中AJAX提交到一般处理程序,添加数据到数据源。同时append一行tr在table中
     第二种方法,可以用repeater+updatepanel.....可以用ItemCommand事件,e.Item.FindControl("控件ID");这种形式来得到控件及其值,添加到数据源,重新加载数据到repeater
    2.循环项,e.Item.FindControl("控件ID");找到你要的控件,得到其值,做你的逻辑操作