【发布时间】:2015-04-22 21:31:14
【问题描述】:
我有一个包含 2 个面板的页面。活动面板由下拉菜单设置。面板 A 设置为 visible="true",面板 B 默认设置为 visible="false"。
每个面板中都有一个 GridView。当页面加载时,可见面板网格将在其中填充数据,但面板 B 上的网格将显示一个空集。如果我点击该面板上的搜索按钮(针对该特定网格),它将填充数据。
如果我切换它并使面板 B 可见而 A 隐藏,网格 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>
什么给了?我错过了什么明显的东西吗?我在其他多个页面上使用这样的设置,并进行了比较。看不到问题。
【问题讨论】:
-
如果父容器设置为可见 false,它不会呈现数据。使用 css 类隐藏面板
-
@Legends 在其他应用程序中,我使用 DataBind() 而不是这个 DataSource.SelectCommand,并且渲染效果很好。这是不同功能做不同事情的情况吗?
-
实际上,当将 gv 设置为可见 false 时,根本不会有 Gridview,所以在你的情况下,它必须与数据绑定相关,这也是我的猜测。我不使用这个数据源废话...但是为什么 GridA 包含数据,嗯很奇怪
-
如果sqldatasource的数据绑定事件被命中,你能调试它吗?!
标签: sql asp.net sql-server vb.net