0

我想更改div后面 datalist 代码中的类。如果div不在数据列表中,那没关系,但它在当前的数据列表中。我的代码是

<asp:DataList ID="datalistsorular" runat="server" 
        BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" Width="730px">
        <ItemTemplate>
<div class="divsorugoruntulenmesayisi" id="cevaplanma" runat="server">
                <asp:Label ID="Label7" runat="server" Text='<%# Eval("Cevaplanma_Sayisi") %>'></asp:Label>
            </div>
        </ItemTemplate>
</asp:DataList>

如果不在 datalist 内,我会在后面编写代码,但 datalist 在这种情况下会引发问题。

cevaplanma.Attributes["class"] = "otherclass";
4

2 回答 2

1

由于此控件位于项目模板中,因此您不会通过简单地使用 id 来获得它,因为它不是唯一的。您需要在事件处理程序中处理它。

<asp:DataList ID="datalistsorular" runat="server" 
    BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" Width="730px" onitemdatabound="datalistsorular_ItemDataBound">
    <ItemTemplate>
      <div class="divsorugoruntulenmesayisi" id="cevaplanma" clientIDMode="static" runat="server">
      <asp:Label ID="Label7" runat="server" Text='<%# Eval("Cevaplanma_Sayisi") %>'>              
      </asp:Label>
      </div>
</ItemTemplate>

你后面的代码应该是这样的:。

protected void datalistsorular_ItemDataBound(object sender, DataListItemEventArgs e)
{
       //Find control and apply the class..
       // something like e.Item.FindControl("cevaplanma")
       HtmlControl div = e.Item.FindControl("cevaplanma") as HtmlControl;
       if (div != null)
       {
        div.Attributes["class"] = "className";
       }
}

您需要添加以下行:

using System.Web.UI.HtmlControls;
于 2013-08-22T11:21:30.787 回答
0

将数据绑定到这个dataList之后,dataSource中的每一行都会有这个div。需要找到对应的行并设置类

((System.Web.UI.HtmlControls.HtmlContainerControl)(datalistsorular.Items[rowIndex].FindControl("cevaplanma"))).Attributes["class"]="anotherClass"
于 2013-08-22T11:31:12.237 回答