如何在Repeater中获取文字内容值
我有一个中继器,如下所示。 如何在代码中获取报告ID(来自hiddenContent2中的表达式)?
表达是
注意:我更喜欢不使用“FindControl”的方法。
ASP.NET
<asp:TextBox ID="txtEmailRecipients" runat="server" class="textEdit" Text='' TextMode="MultiLine">
代码背后
protected void Save_Click(object sender, EventArgs e) { foreach (RepeaterItem item in rptReports.Items) { foreach(Control c in item.Controls) { string test1 = c.ID; Type t = c.GetType(); } string emails = ((TextBox)item.Controls[1]).Text; } }
试试这个,
foreach (RepeaterItem item in rptReports.Items) { Label lblReportID= (Label)item.FindControl("lblReportID"); string ReportID = lblReportID.Text; }
如果你使用“div”,那么试试这个:
foreach (RepeaterItem item in rptReports.Items) { System.Web.UI.HtmlControls.HtmlGenericControl hiddenContent2 = (System.Web.UI.HtmlControls.HtmlGenericControl)item.FindControl("hiddenContent2"); string ReportID = hiddenContent2.InnerHtml; }
您可以使用Repeater的ItemIndex属性。 这是样本:
<%# Eval("SomeID") %>
代码behinde:
protected void Page_Load(object sender, EventArgs e) { var objects = new object[] { new {SomeID = 1}, new {SomeID = 2}, new {SomeID = 3}, new {SomeID = 4} }; repTest.DataSource = objects; repTest.DataBind(); } protected void btnClick(object sender, EventArgs e) { var data = (object[])repTest.DataSource; foreach (RepeaterItem item in repTest.Items) { var obj = data[item.ItemIndex]; var id = obj.GetType().GetProperty("SomeID").GetValue(obj, null); } }
所以,你需要做两件事。