2017-07-31 50 views
0

我有一個函數,需要加載自定義的Web用戶控件,傳遞一些值,然後採取由該控件生成的HTML。後面的ASP.net代碼生成的網頁用戶控制不傳遞值

我的代碼:

string renderedControl; 
{ 
    var page = HttpContext.Current.Handler as Page; 
    var ctrl = (ResponsiveImageFixedSize)page.LoadControl("~/PageControls/ResponsiveImageFixedSize/ResponsiveImageFixedSize.ascx"); 
    ctrl.Width = 600; 
    ctrl.UploadedImage = upload; 

    var sb = new StringBuilder(); 
    var tw = new StringWriter(sb); 
    var hw = new HtmlTextWriter(tw); 
    ctrl.RenderControl(hw); 
    renderedControl = sb.ToString(); 
} 

的HTML我得到的回覆是,如果沒有值已傳遞到控制我所期望的HTML。在控制自己,如果我這樣做:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Width.ToString().Log(); 

Log()是一個可靠的功能,可將值設置爲數據庫,顯然不執行此功能。

我在這裏做的一切都正確嗎?

回答

0

解決了一點點打轉轉:

string renderedControl; 
{ 
    var page = new Page(); 
    var ctrl = (ResponsiveImageFixedSize)page.LoadControl("~/PageControls/ResponsiveImageFixedSize/ResponsiveImageFixedSize.ascx"); 
    ctrl.Width = 600; 
    ctrl.UploadedImage = upload; 
    ctrl.OriginalImagePath = originalImagePath; 
    ctrl.Alt = alt; 
    page.Controls.Add(ctrl); 
    var sw = new StringWriter(); 
    HttpContext.Current.Server.Execute(page, sw, false); 
    renderedControl = sw.ToString(); 
} 
相關問題