我在RadPageView中有一个Telerik RadGrid,另一个RadPageView中有另一个RadGrid。两者都是同一RadMultiPage控件的一部分。我正在编写一个Javascript函数来调整RadGrids的大小以填充窗口中的剩余空间。如何确定哪个RadGrid在活动RadPageView中是可见的?
这可能会让你更清楚我的意思:
<script type="text/javascript">
function resizeElements(sender, EventArgs) {
var m_grid = sender;
if(m_grid) {
m_grid.GridDataDiv.style.height = right_pane_height - padding + "px";
}
}
</script>
<div id="right_pane">
<telerik:RadMultiPage runat="server" >
<telerik:RadPageView runat="server">
<telerik:RadGrid runat="server" >
<ClientSettings>
<ClientEvents OnGridCreated="resizeElements" />
</ClientSettings>
</telerik:RadGrid>
</telerik:RadPageView>
<telerik:RadPageView runat="server">
<telerik:RadGrid runat="server" >
<ClientSettings>
<ClientEvents OnGridCreated="resizeElements" />
</ClientSettings>
</telerik:RadGrid>
</telerik:RadPageView>
</telerik:RadMultiPage>
</div>
答案 0 :(得分:0)
我不使用Telerik,但是,一般的方法是在Firebug / Chrome F12视图/类似中查看元素的类,然后使用JQuery查找&#34; div:visible&#34 ;在你的RadMultiPage里面(如果你能在ASP.NET中给它一个ID或一个类)。在这里你会找到你的网格。
你的JQuery看起来像这样:
$('#myMultiPageID > div:visible > .classOfRadGrid').each(function() {
resizeElements(this, myEventArgsVariable);
});
答案 1 :(得分:0)
我意识到没有必要知道哪个RadGrid可见以便调整它的大小。我只是调整它们的大小。唯一的问题是我需要确保RadGrid及其GridDataDiv元素存在,因为当它们所在的RadPageView不可见时它们可能不存在。
if( m_grid && m_grid.GridDataDiv ) {
m_grid.GridDataDiv.style.height = right_pane_height - padding + "px";
}
if( m_grid2 && m_grid2.GridDataDiv ) {
m_grid2.GridDataDiv.style.height = right_pane_height - padding + "px";
}