2015-04-22 90 views
0

我有一個帶有2個面板的頁面。活動面板通過下拉菜單設置。面板A設置爲visible =「true」,面板B默認設置爲visible =「false」。GridView在面板不加載時隱藏面板

在每個面板中都有一個GridView。當頁面加載時,可見面板網格中將填充數據,但面板B上的網格將顯示一個空集。如果我點擊該面板上的搜索按鈕(針對該特定網格),則會填充數據。

如果我切換它並使面板B可見&隱藏,網格B將有數據,網格A不會。搜索會加載它。如果我將兩個面板都設置爲可見,則兩個網格都將填充。

這是在我的網頁加載功能:

If Not Page.IsPostBack Then 
     table_dropdown.SelectedIndex = 0 'setting the default to view Table A 

     TPAnnuity_SqlDataSource.SelectCommand = "SELECT * FROM TABLE A" 
     TPLife_SqlDataSource.SelectCommand = "SELECT * FROM TABLE B" 
End If 

而且我的各種面板&網聲明:

<asp:Panel ID="TPAnnuity_Panel" runat="server" visible="true"> 
    <asp:GridView ID="TPAnnuity_GridView" AllowSorting="true" AllowPaging="true" Runat="server" 
      DataSourceID="TPAnnuity_SqlDataSource" DataKeyNames="AnnuityTotalPointsID" 
      AutoGenerateColumns="False" ShowFooter="true" PageSize="20"> 
    </asp:GridView> 
    </asp:Panel> 

<asp:Panel ID="TPLife_Panel" runat="server" visible="false"> 
    <asp:GridView ID="TPLife_GridView" AllowSorting="true" AllowPaging="true" Runat="server" 
      DataSourceID="TPLife_SqlDataSource" DataKeyNames="LifeTotalPointsID" 
      AutoGenerateColumns="False" ShowFooter="true" PageSize="20"> 
    </asp:GridView> 
    </asp:Panel> 

是怎麼回事?我錯過了一些公然的東西嗎?我在多個其他頁面上使用這樣的設置,並進行了比較。看不到問題。

+0

如果父容器設置爲可見false,它將不會呈現數據。 使用css類隱藏面板 – Legends

+0

@Legends在其他應用程序中,我使用DataBind()而不是此DataSource.SelectCommand,並且這些渲染正常。這是不同的功能做不同的事情? – PhoenixUNI

+0

實際上根本就沒有Gridview,當把gv設置爲可見的false時,所以在這種情況下它必須與數據綁定關聯,這也是我的猜測。我不用這個數據源廢話... 但爲什麼GridA包含數據,很奇怪 – Legends

回答

0

是:工作的其他例子有SELECT命令是置於.aspx文件,像這樣:

<asp:SqlDataSource ID="TPAnnuity_SqlDataSource" Runat="server" 
     SelectCommand="SELECT * FROM Table A" 
     InsertCommand="INSERT INTO Table A() Values() " 
     UpdateCommand="UPDATE Table A Set Stuff = This"> 

我原本只有插入和更新這裏,不得不在後端數據綁定。