大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
Repeater控件的ItemDataBound事件:在项被绑定数据后触发。
下面的例子来自msdn,不过我把前台和后台分开了。
前台是:
View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.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> <h1>Repeater控件的ItemDataBound事件</h1> <form id="form1" runat="server"> <div> <asp:Repeater ID="repeater1" runat="server" OnItemDataBound="Repeater1_OnItemDataBound"> <HeaderTemplate> <table border="1"> <tr> <td><b>Product</b></td> <td><b>Consumer Rating</b></td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><asp:Label Text='<%#Eval("ProductID") %>' runat="server"></asp:Label></td> <td><asp:Label Text='<%#Eval("Rating") %>' ID=RatingLabel runat="server"></asp:Label></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </div> </form> </body> </html>
注意:table开始标签在<HeaderTemplate>中,结束标签在 <FooterTemplate>中。
绑定数据Text='<%#Eval(“ProductID”) %>’需要加单引号,里面加双引号。
后台是:
View Code
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; namespace WebApplication2 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ArrayList values = new ArrayList(); values.Add(new Evaluation("Razor Wiper Blades", "Good")); values.Add(new Evaluation("Shoe-So-Soft Softening Polish", "Poor")); values.Add(new Evaluation("DynaSmile Dental Fixative", "Fair")); this.repeater1.DataSource = values;//指定数据源 this.repeater1.DataBind(); //绑定数据 } protected void Repeater1_OnItemDataBound(object sender, RepeaterItemEventArgs e) { // This event is raised for the header, the footer, separators, and items. // Execute the following logic for Items and Alternating Items. if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { if (((Evaluation)e.Item.DataItem).Rating == "Good") { ((Label)e.Item.FindControl("RatingLabel")).Text = "<b>***Good***</b>"; } } } } public class Evaluation { private string productid; private string rating; public Evaluation(string productid, string rating) { this.productid = productid; this.rating = rating; } public string ProductID { get { return productid; } } public string Rating { get { return rating; } } } }
该事件在 Repeater 控件中的某一项被数据绑定后但尚未呈现在页面上之前发生。
运行结果:
参见:http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.repeater.itemdatabound(v=vs.80).aspx
下面说一下RepeaterItemEventArgs,它为 Repeater 的 ItemCreated 和 ItemDataBound 事件提供数据。
如果在 Repeter中有一个DropDownlist and Datalist ,然后你想根据DropDownlist的值设置Datalist的值,可以使用下面的方法来传值:
protected void DDLSort2_OnSelectedIndexChanged(object sender, EventArgs e) { DropDownList dl = new DropDownList(); dl = (DropDownList)sender; string sortdir = dl.SelectedValue.ToString(); Control parent = dl.Parent; RepeaterItem rep = new RepeaterItem(0,ListItemType.Item); rep = (RepeaterItem)parent; RepeaterItemEventArgs e1=new RepeaterItemEventArgs(rep); BindInnerDatalist(sender,e1, sortdir);//另外写的方法。 }
参见:http://forums.asp.net/t/1707348.aspx/1
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182471.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...