我试图在ASP.Net中使用SELECT2与下拉列表结合使用.
这是我的.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="ASPNet_SELECT2_1._default" %>a SELECT2 implementation in ASP.NET
这是我背后的代码
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) { } } }
SELECT2控件与我的下拉列表的绑定工作正常.我还为下拉列表设置了"multiple"属性以具有多选功能.但我无法获得所选项目.而且我也无法设置这些项目.
当我选择多个元素并进行回发时(例如在按钮单击时),则在回发后仅选择一个项目.我总是得到所选择的第一项.
如何获取所有选定的项目,并在回发和代码中设置多个选定的项目?
我已经通过使用带有runat ="server"的HTML选择标签而不是使用DropDownList来解决它,因为我认为默认情况下在控件中实现了Postback功能等,并且不能用更少的努力进行更改.
这是我的JS
$(document).ready(function () { $("#select1").select2({ placeholder: "Select a Subject", allowClear: true }); });
这是我的.aspx
这是我在C#中的代码隐藏来填充select中的项目
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 += "
- " + select1.Items[i].Text + " | " + select1.Items[i].Value; } // SET SELECTED ITEMS select1.Items[2].Selected = true; select1.Items[4].Selected = true;