2013-05-02 54 views
0

在正常模式下(默認情況下第一次加載ReportViewer和本地報告),我可以正確地獲取CurrentPage,它是當前視圖模式下的當前頁面。在打印預覽模式下獲取ReportViewer的當前頁面?

但在更改爲預覽模式後(可以使用SetDisplayMode(DisplayMode.PrintLayout)完成),我無法獲取CurrentPage的值,這是我可以訪問的唯一屬性,用於瞭解ReportViewer的當前頁面。我需要實現這一點,因爲我想爲reportviewer自定義自己的工具欄,除了在切換到PrintLayout模式後,CurrentPage似乎固定爲1之外,幾乎已經完成了它。

這裏是我的代碼來顯示當前頁面:

private void BindData(){ 
    myTextBox.DataBindings.Clear(); 
    myTextBox.DataBindings.Add("Text", myReportViewer, "CurrentPage"); 
} 
//Register some events to re-bind data and get other updated info (such as TotalPages)... 
myReportViewer.RenderingComplete += (s,e) => { 
    BindData(); 
}; 
myReportViewer.PageSettingsChanged += (s,e) => { 
    BindData(); 
}; 

這時候,在正常模式(PageSettingsChanged處理程序被添加用於切換到PrintLayout模式,但它似乎沒有工作的工作原理確定,它確實幫助更新可以使用GetTotalPages()方法實現的TotalPages,但是在切換到PrintLayout模式後綁定不再工作)。

您的幫助將不勝感激!

非常感謝您提前!

回答

0

的當前頁是沒有被固定爲1

這裏的問題是RenderingComplete沒有得到,如果你換頁 您需要使用PageNavigationevent

myReportViewer.PageNavigation += myPageNavigation 

void myPageNavigation(object sender, PageNavigationEventArgs e) 
{ 
    MessageBox.Show("CurrentPage will be" +e.NewPage); 
} 
稱爲