2016-10-02 3 views
2

Я пытаюсь сделать Language Selector и я использую этот код для выпадающего спискасписка выпадающего с изображением для каждого пункта

<asp:DropDownList ID="ddlGender" runat="server" Width="200px"> 
    <asp:ListItem Text="Select Language"></asp:ListItem> 
    <asp:ListItem Text="English" ></asp:ListItem> 
    <asp:ListItem Text="Albanian" ></asp:ListItem> 
</asp:DropDownList> 

Но теперь я хочу поставить Страну иконку в тех 2. I имеют 2 изображения в папке «Изображения» внутри моего проекта. например Images/EnglishFlag.png Как я могу поместить их в раскрывающийся список?

Я видел много видео или код, который сделал это, но они получили изображения из SQL-базы данных.

Любое предложение?

ответ

2

Используйте следующее:

Default.aspx:

<form id="form1" runat="server"> 
<div> 
    <asp:DropDownList ID="DropDownList1" runat="server" Width="200px"> 
    </asp:DropDownList> 
</div> 
</form> 

Default.aspx.cs:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      DataTable objdt = new DataTable(); 
      objdt = GetData(); 
      DropDownList1.DataSource = objdt; 
      DropDownList1.DataTextField = "Country"; 
      DropDownList1.DataValueField = "Id"; 
      DropDownList1.DataBind(); 

      string imageURL = ""; 
      for (int i = 0; i < DropDownList1.Items.Count; i++) 
      { 
       switch (DropDownList1.Items[i].Text) 
       { 
        case "Bangladesh": imageURL = "Images/flag-of-Bangladesh.png"; 
         break; 
        case "China": imageURL = "Images/flag-of-China.png"; 
         break; 
        case "Germany": imageURL = "Images/flag-of-Germany.png"; 
         break; 
        case "USA": imageURL = "Images/flag-of-USA.png"; 
         break; 
       } 
       ListItem item = DropDownList1.Items[i]; 
       item.Attributes["style"] = "background: url(" + imageURL + ");background-repeat:no-repeat;"; 
      } 
     } 
    } 

    public DataTable GetData() 
    { 
     DataTable _objdt = new DataTable(); 

     _objdt.Columns.Add("Country", typeof(string)); 
     _objdt.Columns.Add("Id", typeof(long)); 

     _objdt.Columns.Add("LabelValue"); 
     var _objrow = _objdt.NewRow(); 
     _objrow["Country"] = "Bangladesh"; 
     _objrow["Id"] = 1; 

     _objdt.Rows.Add(_objrow); 
     _objrow = _objdt.NewRow(); 
     _objrow["Country"] = "China"; 
     _objrow["Id"] = 2; 
     _objdt.Rows.Add(_objrow); 

     _objrow = _objdt.NewRow(); 
     _objrow["Country"] = "Germany"; 
     _objrow["Id"] = 3; 
     _objdt.Rows.Add(_objrow); 

     _objrow = _objdt.NewRow(); 
     _objrow["Country"] = "USA"; 
     _objrow["Id"] = 4; 
     _objdt.Rows.Add(_objrow); 

     return _objdt; 
    } 

Проверить это - Bind Images To ASP.NET DropDownList

+0

Спасибо, что дал мне что-то сосредоточиться, но мне просто нужен простой выпадающий список, который управляется на странице aspx. просто выпадающий список. Я имею в виду, что фотографии должны быть там до загрузки страницы, а не сразу после этого – berg96

+0

Вы не можете связать изображение напрямую с ASP.NET DropDownList. Вы должны сделать это в фоновом режиме или с помощью jQuery. См. Мое обновленное сообщение со ссылкой. –

Смежные вопросы