0

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>

データリスト内にない場合は、コードビハインドを実行しますが、この場合、データリストが問題を引き起こします。

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 に答える