Select2在ASP.Net UserControl中不起作用

时间:2015-04-24 13:51:40

标签: javascript c# jquery asp.net

我正在使用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不起作用。面板是隐藏的,但是如果我加载页面,我会将其显示出来。我错过了什么?

1 个答案:

答案 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>