#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 год … 😉