簡體   English   中英

ASP.NET動態負載控制

[英]ASP.NET dynamically load control

我正在使用以下代碼從HttpHandler動態加載用戶控件。

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page newPage = new Page();
newPage.EnableEventValidation = false;
newPage.LoadControl("~/App_Controls/Site/Player/PlayerProfile2.ascx").RenderControl(htw);
var content = sb.ToString();

PlayerProfile用戶控件已成功加載,但似乎未在執行設置用戶控件中字段值的代碼,即

<div class="content">

<div>
<p>Use the fields below to change your personal details.</p>
<label for="email">Name:</label>
<asp:TextBox CssClass="long" ID="txtProfileName" runat="server" />
<label for="age">Age:</label>
<asp:TextBox ID="txtAge" runat="server" class="tiny" />
<label for="phone">Phone number:</label>
<asp:TextBox ID="txtPhone" runat="server" />
<label for="gender">Gender:</label>
<br />
<asp:DropDownList ID="ddlGender" />
</div>

txtProfileName.Text = "Test";
txtProfileEmail.Text = player.Email;
var genders = new Dictionary<string, string>();
genders.Add("0", "Male");
genders.Add("1", "Female");
ddlGender.DataSource = genders;
ddlGender.DataBind();

我嘗試在帶有斷點的調試模式下運行,並且它正在為動態加載的用戶控件擊中PageLoad。

謝謝,

肖恩

您應該在init而不是加載上添加控件。 否則,您的控件將不會參與viewstate並且事件將無法正確連接。 這是一個古老但有效的示例,可以完成您嘗試做的事情。

http://www.codeproject.com/Articles/7908/Dynamically-Loading-User-Control-on-a-Webform-usin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM