Как добавить функцию поиска в выпадающий список в asp.net с помощью Select2.js - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть проект с MasterPage.Я добавил имя страницы содержимого AddEmployeeDetail.aspx, которая находится здесь

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="AddEmployeeDetail.aspx.cs" Inherits="DeceasedSystem.AddEmployeeDetail" %>

Внутри страницы содержимого AddEmployeeDetail.aspx у меня есть выпадающий список с именем ddEmployeeName.При загрузке страницы этот выпадающий список заполняется из базы данных EmployeeName.Вот HTML

<div class="form-group row">
                                <label for="name" class="col-4 col-form-label">Employee Name</label>
                                <div class="col-8">
                                    <asp:DropDownList ID="ddEmployeeName" runat="server" class="form-control here"></asp:DropDownList>
                                </div>
                            </div>

Вот код файла .cs

protected void Page_Load(object sender, EventArgs e)
    {
        ddEmployeeName.DataSource = LoadComboBoxEmployeeName();
        ddEmployeeName.DataTextField = "Name";
        ddEmployeeName.DataValueField = "Id";
        ddEmployeeName.DataBind();
        ddEmployeeName.Items.Insert(0, new ListItem("--Select--", "0"));
    }
    string CS = ConfigurationManager.ConnectionStrings["DeceasedDBCS"].ConnectionString;

    //Load ComboBox Company
    private DataTable LoadComboBoxEmployeeName()
    {
        DataTable dtFatherName = new DataTable();
        using (SqlConnection con = new SqlConnection(CS))
        {
            using (SqlCommand cmd = new SqlCommand("SELECT Id, Name FROM TableEmployeeMaster", con))
            {
                cmd.CommandType = CommandType.Text;
                con.Open();
                SqlDataReader r = cmd.ExecuteReader();
                dtFatherName.Load(r);
            }
        }
        return dtFatherName;

    }

Я также добавляю файл сценария на этой странице контента AddEmployeeDetail.aspx, который

 <script>
    $(document).ready(function () {
     $("#ddEmployeeName").select2({
        placeholder: "Select an option",
        allowClear: true
     });
 });
</script>

, а также ссылка на файлы Jquery.js и Select2.js, которая

<script src="js/jquery.js"></script>
<script src="js/select2.js"></script>

Оба файла находятся в заполнителе содержимого.Теперь я хочу, чтобы после загрузки страницы и получения данных в раскрывающемся списке, когда пользователь щелкает раскрывающийся список, он / она должен иметь возможность искать любые конкретные данные и затем выбирать их.Короче говоря, я хочу добавить функцию поиска в выпадающий список.Пока что я сделал, это не работает.Он загружает данные, но не добавляет функции поиска.Я не знаю в чем проблема.А также.будет ли это работать, если вместо скриптов и файлов скриптов в MasterPage добавить страницу контента?Я использую BS4.Помоги мне, пожалуйста.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы можете просто использовать $ ("# <% = ddEmployeeName.ClientID%>"). Select2 ({placeholder: "Выберите опцию", allowClear: true});

0 голосов
/ 20 декабря 2018

Попробуйте установить для свойства ClientIDMode DropDownList значение Static.

...