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