[英]Need to run some code after Repeater DataBind event
我正在為停車場寫一個程序; 它已接近完成,但我正在工作或報告,需要使數據簡單可靠; 為此,我有一個中繼器; 在DataBind
事件之后; 我想使用'循環'將前色素應用於內部轉發器標簽,該標簽在數據綁定后保存某些文本結果; 以及顯示使用DateTime.Now
計算的時間跨度 - 數據綁定標簽中的日期。 我的代碼僅適用於轉發器中的第一個結果。
FIndAny
是一個訪問內部控制的小班; 請忽略; 只是幫我提供示例代碼,告訴我如何做這樣的事情。
以下是代碼示例:
Repeater1.DataBind();
//int i=0;
//Label dc = c;
foreach (RepeaterItem t in Repeater1.Items)
{
((Label)(FIndAny(Repeater1, "Label41"))).Text =
Convert.ToString((DateTime.Now - DateTime.Parse(((Label)(FIndAny(Repeater1, "Label9"))).Text)).TotalHours);
}
Label6.Text = "View Time trace below...";
Label lbl = ((Label)FIndAny(Repeater1, "Label11"));
if (((Label)FIndAny(Repeater1, "Label13")).Text == "Parked" && (mdx.cardstatus.Where(x => x.CardNum == lbl.Text)).All(x => x.Status == 1))
{
((Panel)FIndAny(Repeater1, "Panel1")).BorderColor = System.Drawing.Color.Red;
((Panel)FIndAny(Repeater1, "Panel1")).BorderStyle = BorderStyle.Solid;
((Panel)FIndAny(Repeater1, "Panel1")).BorderWidth = 5;
((Label)FIndAny(Repeater1, "Label13")).BackColor = System.Drawing.Color.Red;
((Label)FIndAny(Repeater1, "Label13")).Font.Bold = true;
((Label)FIndAny(Repeater1, "Label13")).ForeColor = System.Drawing.Color.White;
}
您正在尋找Repeater.ItemDataBound事件 ,它發生在Repeater控件中的項目是數據綁定之后但在頁面上呈現之前。
Repeater1.ItemDataBound += new RepeaterItemEventHandler(Repeater1ItemDataBound);
Repeater1.DataBind();
}
void Repeater1ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
Label label13 = (Label)e.Item.FindControl("Label13");
if (label13.Text == "Parked") {
//..... etc
}
}
在aspx頁面上試試這個
<asp:Repeater OnItemDataBound="Repeater_ItemDataBound" ID="Repeater" runat="server">
<ItemTemplate>
<asp:Label ID="MyLabel" runat="server" Text="Label"></asp:Label>
</ItemTemplate>
</asp:Repeater>
然后是代碼隱藏
protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
Label myLabel = e.Item.FindControl("MyLabel") as Label;
YourItemObject itemObject = e.Item.DataItem as YourItemObject;
myLabel.Text = itemObject.SomeAttribute;
}
}
希望能幫助到你 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.