概述:经常我们需要做一些效果,需要在repeater中输入数据,然后提交到后台。同时在网上也发现有人提出了这样的问题
很多网站没有解决的问题:在Repeater中TextBox取不到值??
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TempAspNetControl.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" onitemcommand="Repeater1_ItemCommand"> <ItemTemplate> <li> <%#Eval("nickName") %> <textarea id="txtarea" runat="server"></textarea> <asp:TextBox ID="txt" runat="server"> </asp:TextBox> <asp:LinkButton ID="lbtn" runat="server" Text="提交"></asp:LinkButton> </li> </ItemTemplate> </asp:Repeater> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:myzoneConnectionString %>" SelectCommand="SELECT * FROM [User]"></asp:SqlDataSource> </div> </form> </body> </html>
后台代码:
using System;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace TempAspNetControl
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
HtmlTextArea txtarea = (HtmlTextArea)e.Item.FindControl("txtarea");
TextBox txt = (TextBox)e.Item.FindControl("txt");
Response.Write(txtarea.Value+"****\\"+txt.Text + "ddd");
}
}
}
效果图: