Ser*_*ity 4 html css c# asp.net
id0是div的类,它有背景作为精灵图像,在这个div里面.这是一个链接列表(在转发器中)..当用户将鼠标悬停在链接上时... div的背景图像显示精灵的差异部分相应的图像
现在我希望将类id1到id5设置为转发器列表的类...现在我该怎么做呢?
就像转发器里面的链接列表来自DB ..如何在这个转发器内部创建div标签
以及如何为将要创建的5个div中的每一个设置类并在其上设置这些类?
像早些时候我有简单的标记,但现在我必须使用转发器生成链接列表..所以我现在如何应用CSS?
请给出一些想法..谢谢
[编辑]确定试过这个..在标签和后面的代码中在转发器中添加了div标签: - rpt1.FindControl("myDiv").Controls.Add(class = ??)//这里键入什么用于循环或什么? [编辑]这不起作用..怎么回事?**
for(int i=1;i<6;i++)
{
rpt1.FindControl("myDiv").Controls.Add("class=id[i]");
}
Run Code Online (Sandbox Code Playgroud)
上面给出了以下错误: -
'System.Web.UI.ControlCollection.Add(System.Web.UI.Control)'的最佳重载方法匹配有一些无效的参数
现在我如何设置div的类?
pch..made dilly mist..made changes ..
for (int i = 1; i < 6; i++)
{
string divClass = "id";
rpt1.FindControl("myDiv").Controls.Add("class=id" + i);
}
Run Code Online (Sandbox Code Playgroud)
仍然是同样的错误..
[编辑]
尝试了以下......彻底的工作
rpt1.FindControl("myDiv").Attributes.Add("class","id" +i);
Run Code Online (Sandbox Code Playgroud)
[编辑]
我现在尝试了以下..
rpt1.FindControl("myDiv").Attributes["class"] = "id" + i;
Run Code Online (Sandbox Code Playgroud)
它说"不能将带有[]的索引应用于'方法组'类型的表达式"
PHe*_*erg 13
ItemDataBinding方式
为了获得转发器的ItemTemplate中的元素,你必须声明它runat ="Server"并为它设置一个id(id不是真正必要的,但简化了事情).如果您使用div执行此操作,则可以在ItemDataBound事件中获取它并设置类.
void Repeater_ItemDataBound(Object Sender, RepeaterItemEventArgs e) {
if (e.Item.ItemType == ListItemType.Item
|| e.Item.ItemType == ListItemType.AlternatingItem)
{
((HtmlGenericControl)(e.Item.FindControl("myDiv"))).
Attributes["class"] = "id" + index++;
}
}
Run Code Online (Sandbox Code Playgroud)
您需要声明索引变量并在设置每个类时增加它.
替代方式
一种更简单,更简洁的方式IMHO是使用数据绑定直接在View中设置类
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate><div class="<%# GetDivClass() %>">a div</div></ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
并在后面的代码中声明获取数据的方法
private int index = 1;
protected string GetDivClass()
{
return "div" + index++;
}
Run Code Online (Sandbox Code Playgroud)