2016-01-10 16 views
2

我想在ASP.Net中使用SELECT2與下拉列表結合使用。SELEC2 4.0與ASP.Net中的多選擇:如何獲取和設置選定的項目?

這是我的.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="ASPNet_SELECT2_1._default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <title>a SELECT2 implementation in ASP.NET</title> 
    <script src="scripts/js/jquery-1.12.0.js"></script> 
    <script src="scripts/js/select2/select2.js"></script> 
    <link rel="stylesheet" href="css/select2.css" /> 

    <script> 
      $(document).ready(function() { 
       $("#" + "<%=dd.ClientID%>").select2({ 
       placeholder: "Select a Subject", 
       allowClear: true 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
      <asp:DropDownList ID="dd" runat="server" ClientIDMode="Static" Width="300px" multiple="multiple"></asp:DropDownList> 
     </div> 
     <asp:Button ID="btnGetSelected" runat="server" Text="Get selected items" OnClick="btnGetSelected_Click" />&nbsp;<asp:Button ID="btnSetSelected" runat="server" Text="Set selected items" OnClick="btnSetSelected_Click" /> 
     <br /> 
     <asp:Literal ID="lit" runat="server"></asp:Literal> 
    </form> 
</body> 
</html> 

這背後

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace ASPNet_SELECT2_1 
{ 
    public partial class _default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       for (int i = 0; i < 10; i++) 
       { 
        ListItem l = new ListItem("Item " + i.ToString()); 
        dd.Items.Add(l); 
       } 
      } 
     } 

     protected void btnGetSelected_Click(object sender, EventArgs e) 
     { 
      lit.Text = dd.Text; 
     } 

     protected void btnSetSelected_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

與我的下拉列表中的選擇2控制結合工作正常,我的代碼。我還爲下拉列表設置了「多個」屬性以具有多重選擇功能。但我無法獲得選定的項目。而且我也無法設置這些項目。

當我選擇多個元素並執行回發(例如在按鈕單擊時),然後回發後只選擇一個項目。而且我總是得到所選的第一個項目。

如何獲取所有選擇的項目,並在回發和代碼中設置多個選定的項目?

回答

6

我已經通過使用HTML選擇標記與RUNAT =「服務器」,而不是使用DropDownList的原因,我認爲回傳功能等,在默認情況下,控制實現,不能以較少的努力改變了解決它。

這是我的JS

$(document).ready(function() { 
    $("#select1").select2({ 
     placeholder: "Select a Subject", 
     allowClear: true 
    }); 
}); 

這是我的.aspx

<select id="select1" name="select1" runat="server" multiple="true" style="width:300px"></select> 

這是我在C#代碼隱藏填寫選擇

for (int i = 0; i < 10; i++) 
{ 
    ListItem l = new ListItem("Item " + i.ToString(), i.ToString()); 
    select1.Items.Add(l); 
} 

的項目,這是獲取和設置選定項目的方式

// GET SELECTED ITEMS 
for (int i = 0; i <= select1.Items.Count - 1; i++) 
{ 
    if (select1.Items[i].Selected) 
     lit.Text += "<br /> &nbsp;&nbsp; - " + select1.Items[i].Text + " | " + select1.Items[i].Value; 
} 

// SET SELECTED ITEMS 
select1.Items[2].Selected = true; 
select1.Items[4].Selected = true; 
相關問題