2013-08-22 6 views
0

Я хочу изменить класс div, который находится внутри кода каталогов. Если div не находится внутри datalist, все в порядке, но оно находится внутри datalist at prsent. Мой кодКак изменить класс div, который находится внутри кода 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"; 
+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"; 
     } 
} 

Вам нужно добавить строку:

using System.Web.UI.HtmlControls; 
+0

Хорошо, но я не знаю, как это сделать –

+0

На каком условии вы хотите изменить класс своего div «cevaplanma»? –

+0

foreach (DataRow dr in dt.Rows) { int aswercount = Convert.ToInt32 (dr ["Cevaplanma_Sayisi"]); если (aswercount> 0) { класс // Изменение DIV в }} –

0

После привязки данных к этой DataList, каждая строка в DataSource будет иметь этот DIV. Вам необходимо найти соответствующий ряд и установить класс

((System.Web.UI.HtmlControls.HtmlContainerControl)(datalistsorular.Items[rowIndex].FindControl("cevaplanma"))).Attributes["class"]="anotherClass" 
Смежные вопросы