2012-10-31 34 views
0

MyPage.aspx后:更新文本框的值呈现

<asp:TextBox ID="txtPageCount" runat="server" EnableViewState="true" ></asp:TextBox> 
<rc:ReportControl id="ReportControl1" runat="server" /> 

ReportControl.ascx:

<div> 
      <rsweb:ReportViewer ID="ReportViewer1" runat="server" CssClass="ReportViewer" AsyncRendering="false" 
       OnPreRender="RptViewer_PreRender" EnableViewState="true" Width="100%" PageCountMode="Actual" 
       WaitMessageFont-Size="1.2em" ShowToolBar="true" Visible="true" 
       InteractiveDeviceInfos="(Collection)"> 
       <LocalReport></LocalReport>   
      </rsweb:ReportViewer> 

</div> 

后报告处理(RptViewer_PreRender),在Render事件MyPage.aspx,我更新值的txtPageCount

protected override void Render(HtmlTextWriter writer) 
{ 
    base.Render(writer); 
    TextBox pageCount = new TextBox(); 
    pageCount = (TextBox)RtDialysisSummary.FindControl("txtPageCount"); 

    pageCount.Text = Convert.ToString(ReportViewer1.TotalPages); 
} 

textbox的值没有更新。

回答

1

尝试更新值调用base.Render(writer);像下面

protected override void Render(HtmlTextWriter writer) 
{ 
    TextBox pageCount = new TextBox(); 
    pageCount = (TextBox)RtDialysisSummary.FindControl("txtPageCount"); 

    pageCount.Text = Convert.ToString(ReportViewer1.TotalPages); 
    base.Render(writer); 
} 
2

你确保你能获得在mypage.aspx的渲染事件的正确之前PAGECOUNT? 因为据我所知,呈现事件的mypage.aspx将出现在你的ascx控件的呈现事件之前,所以pagecount的值将会更老。

+0

谢谢。你是对的。 – mike44