初学者有关问题Repeater_ItemDataBound里怎么动态的给ItemTemplate赋值

菜鸟问题Repeater_ItemDataBound里如何动态的给ItemTemplate赋值
请教个问题Repeater_ItemDataBound里如何动态的给ItemTemplate赋值
<ItemTemplate> 
<a href="" class="这里是动态的">xxx </a> 
</ItemTemplate> 
总不能使用label吧?Literal试了不行(没数据),全局变量也不行
难道不能这么用?


相关代码
protected void exRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
  { 
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
  { 
  DataRowView row = (DataRowView)e.Item.DataItem;//当前行的数据 
  DateTime addtime = DateTime.Parse(row["addtime"].ToString()); 
  TimeSpan ts = DateTime.Now - addtime; 
  Label Lclass= (Label)e.Item.FindControl("class"); 
  if (ts.TotalMinutes < 60) 
  { 
  Lclass.Text = "xxx"; 
  } 
  } 
  } 


------解决方案--------------------
你可以用HTML然后把他做服务器组件来运行,可以动态赋值
------解决方案--------------------
div搞成服务器控件
------解决方案--------------------
给代码给你看看
using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TemplateControlSamples
{
[ParseChildren(true)]
public class CustomRepeater : Repeater
{

// Override to prevent LiteralControls from being added as children.
protected override void AddParsedSubObject(object o)
{
}

// Override to create repeated items.
protected override void CreateChildControls()
{
object o = ViewState["NumItems"];
if (o != null)
{
// Clear any existing child controls.
Controls.Clear();

int numItems = (int)o;
for (int i = 0; i < numItems; i++)
{
// Create an item.
RepeaterItem item = new RepeaterItem(i, ListItemType.Item);
// Initialize the item from the template.
ItemTemplate.InstantiateIn(item);
// Add the item to the ControlCollection.
Controls.Add(item);
}
}
}

// Override to create the repeated items from the DataSource.
protected override void OnDataBinding(EventArgs e)
{
base.OnDataBinding(e);
if (DataSource != null)
{
// Iterate over an ICollection DataSource, creating a new item for each data item.
IEnumerator dataEnum = ((ICollection)base.DataSource).GetEnumerator();
int i = 0;
while (dataEnum.MoveNext())
{
// Create an item.
RepeaterItem item = new RepeaterItem(i, ListItemType.Item);
item.DataItem = dataEnum.Current;
// Initialize the item from the template.
ItemTemplate.InstantiateIn(this);
// Add the item to the ControlCollection.
Controls.Add(item);

i++;
}

// Prevent child controls from being created again.
ChildControlsCreated = true;
// Store the number of items created in view state for postback scenarios.
ViewState["NumItems"] = i;
}
}
}
}


------解决方案--------------------
 
<%@ Page Language="C#" %>
<%@ Register TagPrefix="Samples" Namespace="TemplateControlSamples" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">


protected void Page_Load(object sender, EventArgs e)
{
ArrayList a = new ArrayList();
a.Add("data item 1");
a.Add("data item 2");
Repeater1.DataSource = a;
Page.DataBind();
}

</script>

<html >
<head runat="server">
<title>ChildControlsCreated Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<Samples:CustomRepeater ID="Repeater1" runat="server">
<ItemTemplate><%# Container.DataItem %> <br /></ItemTemplate>
</Samples:CustomRepeater>
</div>
</form>
</body>
</html>
 

------解决方案--------------------
HTML code

<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" >
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br>
            </ItemTemplate>
        </asp:Repeater>

------解决方案--------------------
先MARK下
这次我没眼花了,看清楚了
年纪大了没有办法

也理解楼主的意思了

就是新的数据要加亮显示
是不是这样的效果啊

有时间做个褪色加亮效果给你



------解决方案--------------------
如果你可以接受比较简练的绑定表达式编程,可以参考: http://topic.****.net/u/20081016/10/2b341d6f-2484-4378-9e59-225d049f48ee.html?seed=203346095
------解决方案--------------------
上面帖子中,绑定的是onclick脚本内容,你把它改变为class内容就可以了。