2015-04-22 94 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"> 

我原本只有插入和更新这里,不得不在后端数据绑定。