代码之家  ›  专栏  ›  技术社区  ›  Murat Akarsu

如何更改数据列表代码后面的div类

  •  0
  • Murat Akarsu  · 技术社区  · 12 年前

    我想改变 div 类,该类位于后面的数据列表代码中。如果 分区 不在数据列表中,这是可以的,但它在prsend的数据列表中。我的代码是

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

    如果不在数据列表中,我会在后面执行代码,但数据列表在这种情况下会引发问题。

    cevaplanma.Attributes["class"] = "otherclass";
    
    2 回复  |  直到 12 年前
        1
  •  1
  •   PM.    12 年前

    由于此控件位于项模板中,因此您不会简单地使用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;
    
        2
  •  0
  •   Nisha    12 年前

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

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