San*_*rst 6 c# asp.net webforms dynamic
我使用BuildManager类来加载动态生成的ASPX文件,请注意它没有相应的.cs文件.
使用以下代码我能够加载aspx文件,我甚至可以遍历动态创建的aspx文件的控件集合,但是当我为控件分配值时,它们没有显示出来.例如,如果我将值"Dummy"绑定到aspx页面的TextBox控件,则文本框保持为空.
这是我正在使用的代码
protected void Page_Load(object sender, EventArgs e)
{
LoadPage("~/Demo.aspx");
}
public static void LoadPage(string pagePath)
{
// get the compiled type of referenced path
Type type = BuildManager.GetCompiledType(pagePath);
// if type is null, could not determine page type
if (type == null)
throw new ApplicationException("Page " + pagePath + " not found");
// cast page object (could also cast an interface instance as well)
// in this example, ASP220Page is a custom base page
System.Web.UI.Page pageView = (System.Web.UI.Page)Activator.CreateInstance(type);
// call page title
pageView.Title = "Dynamically loaded page...";
// call custom property of ASP220Page
//pageView.InternalControls.Add(
// new LiteralControl("
Served dynamically..."));
// process the request with updated object
((IHttpHandler)pageView).ProcessRequest(HttpContext.Current);
LoadDataInDynamicPage(pageView);
}
private static void LoadDataInDynamicPage(Page prvPage)
{
foreach (Control ctrl in prvPage.Controls)
{
//Find Form Control
if (ctrl.ID != null)
{
if (ctrl.ID.Equals("form1"))
{
AllFormsClass cls = new AllFormsClass();
DataSet ds = cls.GetConditionalData("1");
foreach (Control ctr in ctrl.Controls)
{
if (ctr is TextBox)
{
if (ctr.ID.Contains("_M"))
{
TextBox drpControl = (TextBox)ctr;
drpControl.Text = ds.Tables[0].Rows[0][ctr.ID].ToString();
}
else if (ctr.ID.Contains("_O"))
{
TextBox drpControl = (TextBox)ctr;
drpControl.Text = ds.Tables[1].Rows[0][ctr.ID].ToString();
}
}
}
}
}
}
}
我看到您从如何动态加载页面进行处理中获取了部分代码。也请阅读迈克的评论。
反转这个:
((IHttpHandler)pageView).ProcessRequest(HttpContext.Current);
LoadDataInDynamicPage(pageView);
Run Code Online (Sandbox Code Playgroud)
对此:
LoadDataInDynamicPage(pageView);
((IHttpHandler)pageView).ProcessRequest(HttpContext.Current);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,更改调用顺序确实会改变我认为的最终结果。交换律的倒数。:)
| 归档时间: |
|
| 查看次数: |
2307 次 |
| 最近记录: |