我正在使用Select2 plugin examples。它正在所有页面上工作,但它不在用户控件中工作。我有一个usercontrol如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchPage.ascx.cs" Inherits="SIGORTAPRO.WEB.UC.SearchPage" %>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="../../../js/select2.js"></script>
<link href="../../../Content/css/select2.css" rel="stylesheet" />
<asp:Panel ID="panel" runat="server" Visible="false">
<asp:DropDownList ID="ddlSearchDropdownlist" runat="server"></asp:DropDownList>
</asp:Panel>
(function () {
$("#<%= ddlSearchDropdownlist.ClientID %>").select2();
})();
主页如下
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<uc1:SearchPage runat="server" ID="SearchPage" />
</ContentTemplate>
</asp:UpdatePanel>
如果我加载页面没有任何错误,但Select2不起作用。面板是隐藏的,但是如果我加载页面,我会将其显示出来。我错过了什么?
答案 0 :(得分:2)
Visible="false"
表示结果<div>
并且其内容未呈现(即浏览器确实不知道有关它们的任何信息,因为它们不会出现在浏览器收到的HTML中)。
如果您希望隐藏它但仍然需要处理代码,请使用style="display:none;"
或适当的类定义。
例如......
<asp:Panel ID="panel" runat="server" style="display:none;">
<asp:DropDownList ID="ddlSearchDropdownlist" runat="server"></asp:DropDownList>
</asp:Panel>
或者...
<style type="text/css">
.myHiddenPanel {
display: none;
}
</style>
<asp:Panel ID="panel" runat="server" CssClass="myHiddenPanel">
<asp:DropDownList ID="ddlSearchDropdownlist" runat="server"></asp:DropDownList>
</asp:Panel>