如果控件位于活动的 RadPageView 中,Javascript 是什么?

What is the Javascript to find if a control is in the active RadPageView?

本文关键字:RadPageView Javascript 是什么 控件 于活动 活动 如果      更新时间:2023-09-26
我在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>

我不使用Telerik,但是,一个通用的方法是查看Firebug/Chrome F12视图/similar中元素的类,然后使用JQuery在RadMultiPage中找到"div:visible"(如果可以在 ASP.NET 中给它一个ID或类)。在其中,您将找到您的网格。

您的 JQuery 可能如下所示:

$('#myMultiPageID > div:visible > .classOfRadGrid').each(function() {
    resizeElements(this, myEventArgsVariable);
});

我意识到没有必要知道哪个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";
}