2015-04-24 115 views
1

我正在使用Select2 plugin examples。它在所有頁面上工作,但它不在用戶控件中工作。我有如下一個用戶控件:Select2在ASP.Net中不起作用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> 

如果我加載網頁沒有任何錯誤但選擇二是行不通的。該面板是隱藏的,但是如果我加載頁面,它會顯示。我錯過了什麼?

+1

我們可以看到實際的代碼,而不是什麼產生的呢? –

回答

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>