2016-03-31 11 views
0

私はリストビューで動的にラベルを作成しています。ラベルはdivタグ内に配置されています。ラベルごとにラベルのcssclassを変更します。私はデータベースからラベルの名前を動的に取得しており、そのデータベースには各名前のcssclassesが含まれています。どうすればdivタグにcssclassを動的にバインドできますか?コードcssクラスをデータベースからasp.netのdivタグに動的にバインドするC#

<asp:ListView ID="ListView1" runat="server"> 
    <ItemTemplate> 
     <div class="sidebar-links"> 
      <div class="link-blue"> 
     <a href="#"><i class="fa fa-archive"></i><asp:Label ID="Label1" runat="server" Text='<% #Bind ("mdl_name") %>' ></asp:Label></a> 

      </div> 
      </div> 
    </ItemTemplate> 
    </asp:ListView> 

これは、分離コードは

DataTable dt1 = (DataTable)Session["SessionUserInfo"]; 

String type = dt1.Rows[0]["user_id"].ToString(); 
SqlConnection conn = new SqlConnection("Data Source=BABA; Database=afaqandco; Integrated Security=true"); 
SqlCommand cmd = new SqlCommand("SELECT ma.*, m.* FROM tblmdluserassociation AS ma INNER JOIN tbl_module AS m ON ma.mdl_id=m.mdl_id WHERE ma.user_id='"+type+"'", conn); 

     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = cmd; 

     DataTable dt = new DataTable(); 
     da.Fill(dt); 

     ListView1.DataSource = dt; 
     ListView1.DataBind(); 
+0

ListViewの[ItemDataBound](https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemdatabound(v = vs.110).aspx)イベント – zgood

+0

を調べたいあなたはどのように指定しますか? @zgood –

答えて

0

あなたはリストビューにItemDataBoundメソッドを追加し、次のように背後にあるコードでそれを作成する必要がありますされ、次の

 <asp:ListView ID="ListView1" runat="server" ItemPlaceholderID="itemplaceholder" OnItemDataBound="ListViewMenu_ItemDataBound"> 
     <LayoutTemplate> 
      <asp:PlaceHolder ID="itemplaceholder" runat="server" /> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <div class="sidebar-links"> 
       <div id="MYDIV" runat="server"> 
        <a href="#"><i class="fa fa-archive"></i> 
         <asp:Label ID="Label1" runat="server" Text='<% #Bind("mdl_name") %>'></asp:Label></a> 

       </div> 
      </div> 
     </ItemTemplate> 
    </asp:ListView> 

コードの後ろ

protected void ListViewMenu_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 

    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     ListViewDataItem listViewDataItem = e.Item as ListViewDataItem; 
     HtmlGenericControl divControl = e.Item.FindControl("MYDIV") as HtmlGenericControl; 
     DataRowView dataRow = ((DataRowView)listViewDataItem.DataItem); 
     divControl.Attributes.Add("class", dataRow["CLASS"].ToString()); 
    } 

} 
+0

それは働いてよかった! @Amir –

+0

あなたは大歓迎です、それを最善の答えとして受け入れてください。 – Amir

関連する問題