0

我在 RadPageView 中有一个 Telerik RadGrid,在另一个 RadPageView 中有另一个 RadGrid。两者都是同一个 RadMultiPage 控件的一部分。我正在编写一个 Javascript 函数来调整 RadGrid 的大小以填充窗口中的剩余空间。如何确定哪个 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>
4

2 回答 2

0

我不使用 Telerik,但是,一种通用的方法是在 Firebug/Chrome F12 视图/类似视图中查看元素的类,然后使用 JQuery 在 RadMultiPage 中查找“div:visible”(给这个如果可以在 ASP.NET 中使用 ID 或类)。在这个里面你会找到你的网格。

您的 JQuery 可能看起来像这样:

$('#myMultiPageID > div:visible > .classOfRadGrid').each(function() {
    resizeElements(this, myEventArgsVariable);
});
于 2012-06-27T21:29:05.250 回答
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";
}
于 2012-07-18T16:14:35.253 回答