我对CSS样式和Bootstrap的东西很新,所以在我的工作项目中我遇到了太多问题。
我遇到了一个问题,导致我无法在asp:DropDownList
内使用Bootstrap modal
控件。
实际上我要做的是我有button
名为New Ticket
,所以当用户点击它时,Bootstrap modal
应弹出包含在其正文中form panel
1}}具有不同的控件,例如Text Boxes
,Labels
和DropDownLists
。这些DropDownLists
是asp控件,并且正在C#Code-Behind中预先填充。
在模态之外使用此form-panel
工作正常,但尝试在模态中使用它会让我遇到这个问题。以下是我发生的错误:
编译错误
描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。
编译器错误消息:CS1061:'ASP.openticket_aspx'不包含'ddlServices_SelectedIndexChanged'的定义,并且没有扩展方法'ddlServices_SelectedIndexChanged'接受类型'ASP.openticket_aspx'的第一个参数可以找到(你是否错过了使用指令或程序集引用?)
这是我的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>
<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>
有什么想法吗?
答案 0 :(得分:1)
这不是因为引导程序。这是因为你没有正确处理事件。你应该在你的代码中跟随
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"
。
答案 1 :(得分:0)
假设您的代码 存储在.aspx页面中,并且执行有一个&#34; ddlServices_SelectedIndexChanged&#34;在相关的.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页面中的某个控件找到代码隐藏函数。