如何在代码后面的转发器内部设置div类?

Ser*_*ity 4 html css c# asp.net

CSS和HTML

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)