如何更改div的类,这是在数据列表代码后面

时间:2013-08-22 11:13:17

标签: asp.net html datalist

我想更改后面的datalist代码中的div类。如果div不在数据列表中,则可以,但它在prsent的datalist中。我的代码是

<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";

2 个答案:

答案 0 :(得分:0)

由于此控件位于项目模板中,因此您不会仅使用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;

答案 1 :(得分:0)

将数据绑定到此dataList后,dataSource中的每一行都将具有此div。您需要找到相应的行并设置类

((System.Web.UI.HtmlControls.HtmlContainerControl)(datalistsorular.Items[rowIndex].FindControl("cevaplanma"))).Attributes["class"]="anotherClass"