2013-08-22 14 views
0

我想更改div类,它位于后面的数据列表代码中。如果div不在数据列表内,那么可以,但它在数据列表中位于数据列表中。我的代码是如何更改后面的数据列表代码中的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"; 
+0

您遇到什么问题? – Rex

+0

你想在哪个时间做这样的操作?在ItemDataBound中? –

回答

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

您需要添加一行:您将数据绑定到这个DataList控件后

using System.Web.UI.HtmlControls; 
+0

好的,但我不知道我是怎么做的 –

+0

你想改变你的div“cevaplanma”的类的条件? –

+0

foreach(DataRow dr in dt.Rows) int aswercount = Convert.ToInt32(dr [“Cevaplanma_Sayisi”]); if(aswercount> 0) { // change div's class } } –

0

,数据源中的每一行都会有这个div。您需要找到相应的行并设置类别

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