Выпадающий список ASP не работает внутри Bootstrap modal

#c# #html #asp.net #bootstrap-modal

#c# #HTML #asp.net #bootstrap-modal

Вопрос:

Я очень новичок в стилизации CSS и Bootstrap, поэтому у меня слишком много проблем во время работы над моим рабочим проектом.

Здесь у меня есть проблема, которая мешает мне использовать asp:DropDownList элемент управления для использования внутри a Bootstrap modal .

На самом деле то, что я пытаюсь сделать, это то, что у меня есть button called New Ticket , поэтому, когда пользователь нажимает на него Bootstrap modal , всплывающее окно должно включать в свое тело a form panel , которое имеет различные элементы управления, такие как Text Boxes , Labels и DropDownLists . Это DropDownLists элементы управления asp, которые предварительно заполняются в коде C #.

Использование этого form-panel вне модала работает отлично, но попытка использовать его внутри модала привела меня к этой проблеме. Ниже приведена ошибка, которая возникает у меня:

Ошибка компиляции

Описание: Произошла ошибка во время компиляции ресурса, необходимого для обслуживания этого запроса. Пожалуйста, ознакомьтесь со следующими подробными сведениями об ошибках и соответствующим образом измените исходный код.

Сообщение об ошибке компилятора: CS1061: ‘ASP.openticket_aspx’ не содержит определения для ‘ddlServices_SelectedIndexChanged’ и не удалось найти метод расширения ‘ddlServices_SelectedIndexChanged’, принимающий первый аргумент типа ‘ASP.openticket_aspx’ (вам не хватает директивы using или ссылки на сборку?)

Это мой Modal code :

 <div class="container-fluid">
        <!-- Modal -->
        <div class="modal fade" id="myModal" role="dialog">
            <div class="modal-lg CenterForm">
                <!-- Modal content-->
                <div class="modal-content">
                    <div class="modal-body">
                        <div class="panel panel-default">
                            <div class="panel-heading h4 text-primary text-center">
                                Token Registration
                            </div>
                            <div class="panel-body">
                                <div class="form-horizontal" role="form">
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label" for="lblCallerID">Caller ID:</label>
                                        <asp:Label class="col-sm-2 control-label" ID="lblCallerID" runat="server" Text="66355356"></asp:Label>
                                        <div class="col-sm-10">
                                            <asp:TextBox CssClass="form-control" ID="txtCallerID" runat="server"></asp:TextBox>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <label class="col-sm-4 control-label" for="lblServices">Complaint/Suggestion:</label>
                                        <div class="col-sm-8">
                                            <asp:DropDownList class="form-control" ID="ddlServices" runat="server" OnSelectedIndexChanged="ddlServices_SelectedIndexChanged"></asp:DropDownList>
                                        </div>
                                    </div>
                                    <br />
                                    <div class="row">
                                        <label class="col-xs-2 control-label" for="lblSeverity">Severity:</label>
                                        <div class="col-xs-4">
                                            <asp:DropDownList class="form-control" ID="ddlSeverity" runat="server" OnSelectedIndexChanged="ddlServices_SelectedIndexChanged"></asp:DropDownList>
                                        </div>
                                        <label class="col-xs-2 control-label" for="lblStatus">Status:</label>
                                        <div class="col-xs-4">
                                            <asp:DropDownList class="form-control" ID="ddlStatus" runat="server" OnSelectedIndexChanged="ddlServices_SelectedIndexChanged"></asp:DropDownList>
                                        </div>
                                    </div>
                                    <br />
                                    <div class="form-group">

                                        <label class="col-sm-2 control-label" for="lblSubject">Subject:</label>
                                        <div class="col-sm-10">
                                            <asp:TextBox class="form-control" ID="txtSubject" runat="server" placeholder="Enter Subject"></asp:TextBox>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label" for="lblComments">Comments:</label>
                                        <div class="col-sm-10">
                                            <asp:TextBox class="form-control" ID="txtComments" runat="server" placeholder="Enter Comments" TextMode="MultiLine"></asp:TextBox>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="col-sm-offset-2 col-sm-10">
                                            <asp:Label ID="lblmsg" runat="server" CssClass="label label-danger"></asp:Label>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="col-sm-offset-2 col-sm-10">
                                            <asp:Button ID="btnLogin" OnClick="btnLogin_Click" runat="server" CssClass="btn btn-success" Text="Submit"></asp:Button>
                                            amp;nbsp;<asp:Button ID="btnCancel" OnClick="btnCancel_Click" runat="server" CssClass="btn btn-danger" Text="Cancel"></asp:Button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">New Ticket</button>
                        <asp:Button ID="btnNewTicket" OnClick="btnNewTicket_Click" runat="server" CssClass="btn btn-default" Text="Open Ticket"></asp:Button>
                    </div>
                </div>
            </div>
        </div>
    </div>
 

И вот моя попытка запустить модальный с помощью button :

 <ul class="nav navbar-nav navbar-right">
                <li><a href="#" data-toggle="modal" data-target="#myModal">New Ticket</a></li>
                <li><a href="#">New Client</a></li>
                <li><a href="#" class="glyphicon-user">Username</a></li>
            </ul>
 

Какие-нибудь идеи, пожалуйста?

Комментарии:

1. можете ли вы показать событие SelectedIndexChanged для ddlServices?

Ответ №1:

Это не потому, что bootstrap. Это потому, что вы неправильно обрабатываете событие. В вашем коде должно быть следующее

 protected void ddlServices_SelectedIndexChanged(Object sender, EventArgs e)
{
    // code to handle event
}
 

У вас также должен быть AutoPostBack="true" выпадающий список в разметке.

 <asp:DropDownList class="form-control" ID="ddlServices" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlServices_SelectedIndexChanged"></asp:DropDownList>
 

Я также вижу, что вы вызываете тот же обработчик событий ddlServices_SelectedIndexChanged , который мне кажется ошибкой копирования вставки. Так что учитывайте и это.

Или, если вы не хотите обрабатывать это событие, просто удалите OnSelectedIndexChanged="ddlServices_SelectedIndexChanged" его из своих выпадающих списков.

Ответ №2:

Предполагая, что ваш код хранится на странице .aspx, и у вас есть функция «ddlServices_SelectedIndexChanged», объявленная в соответствующем файле .aspx.cs, вот мой ответ:

Перейдите в начало страницы .aspx и убедитесь, что данные в первой строке указаны правильно.

У меня были ситуации, когда у меня была прекрасно работающая страница .aspx (со страницей с кодом), я скопировал этот файл .aspx на вторую страницу, переименовал ее, но Visual Studio не обновила значения в верхней строке моей страницы .aspx.

Например, если вызывается ваша веб OpenTicket.aspx -страница , то в верхней части страницы .aspx у вас должно быть следующее:

 <%@ Page Title="" Language="C#" AutoEventWireup="true" 
CodeBehind="OpenTicket.aspx.cs" Inherits="SomeNamespace.OpenTicket" %>
 

Это объясняет, почему ASP.Net иногда не удается найти кодовую функцию для одного из элементов управления на странице .aspx.

Комментарии:

1. PS В дальнейшем прекратите использовать ASP.Net элементы управления (и обратные отправки на сервер). Это 2016 год … 😉