2012-06-01 75 views
0

我們曾經擁有SSRS 2005,並且在我們的asp.net環境中使用了ReportViewer v9。爲了正確實現控件的高度(100%),我經歷了一大堆調整大小的javascript函數和其他黑客。我的理解是,由於它使用的IFRAME,控件的v9無法將高度設置爲100%。 現在我們升級到SSRS 2008,並且正在實施ReportViewer v10控件。不幸的是,即使這個版本不再使用IFRAME,看起來高度問題仍然存在。 是否有人實現了寬度= 100%,高度= 100%和AsyncRendering = true的asp.net ReportViewer v10控件?我想擺脫以前版本中所有額外的javascript /黑客攻擊,但我不確定我能否做到,因爲它似乎仍然存在高度問題。 任何建議,不勝感激ReportViewer控件(v10)和高度

回答

0

就像一個更新, 是的ReportViewer版本10,仍然有高度的問題,如果頁面上有其他控件都搞砸了。如果其他人有這個問題,這裏是我的腳本來獲得控件的高度正常工作和調整大小: rv1是我的報表查看器控件,fl是我們的報表參數的自定義參數面板。

Sys.Application.add_load(function() { $find('rv1').add_propertyChanged(viewerPropertyChanged); }); 
$(window).resize(resize); 

function viewerPropertyChanged(sender, e) { 
    if (e.get_propertyName() === 'isLoading') { 
     var viewer = $find('rv1'); 
     if (!viewer.get_isLoading()) 
      resizeWithOffset();   
    } 
} 

function resizeWithOffset() { 
    resize(11); 
} 

function resize(offset) { 
    if (typeof (offset) == 'object' || offset == 'undefined') 
     offset = 0; 

    // only apply if filter parameter panel is present 
    var parameterHeight = $('#fl').height(); 
    if (parameterHeight != null) { 

     // get height of the report viewer toolbar 
     var toolbarHeight = $('#rv1_fixedTable > tbody > tr:nth-child(4)').height(); 

     // get height of the padding between actual report content and toolbar 
     var paddingHeight = $('#rv1_fixedTable').height() - ($('#rv1_fixedTable > tbody > tr:nth-child(5) > td:nth-child(3)').height() + toolbarHeight); 

     // set new height.   
     var newHeight = ($(window).height() - (parameterHeight + toolbarHeight + 11)) + offset; 
     $('#rv1_fixedTable > tbody > tr:nth-child(5) > td:nth-child(3)').height(newHeight); 
     $('#rv1_fixedTable > tbody > tr:nth-child(5) > td:nth-child(3) > div').height(newHeight); 
    } 
}