我想将一些内容渲染到用户控制的div部分( Example.ascx)通过代码隐藏文件(Example.ascx.cs),
Example.ascx
<div id="DivElement" runat="server">
</div>
Example.ascx.cs
void OnInit(EventArgs e)
{
this.PreRender += new EventHandler(Ex_PreRender);
base.OnInit(e);
}
void Ex_PreRender(object sender, EventArgs e)
{
this.DivElement.Load(@"<input type='hidden' name='{0}' id='{0}_VIEW' value='{2}' />
<input type='hidden' name='{0}' value='{3}' />
<script type='text/javascript'>
$(document).ready(function() {{
_controllers['{0}'] = new ExController({{
id: '{0}',
src: '{1}',
}});
_controllers['{0}'].Load();
}});
</script>",
this.id,
this.src,
Request[this.id + "_VIEWSTATE"];);
}
我尝试过如上所述,但内容未加载到DivElement中。任何人都可以建议如何渲染 上面的元素变成了div?
答案 0 :(得分:1)
我可能会使用文字。
<div><asp:literal id="litContent" runat="server"></div>
然后在您的代码隐藏中,使用:
protected void Page_Load(object sender, EventArgs e)
{
litContent.Text = "Your Content";
}
我还注意到你的字符串中有一些错误。如果要将字符串插入字符串,则需要使用string.Format()。
以下是一个例子:
litContent.Text = string.Format("hello {0}. I am a {1}", "you", "test");
所以,看着你的字符串,你会想要做这样的事情:
protected void Page_Load(object sender, EventArgs e)
{
string id = "fetchThisFromSomewhere";
string src = "fetchThisToo";
litContent.Text = string.Format(@"
<input type='hidden' name='{0}' id='{0}_VIEW' value='{2}' />
<input type='hidden' name='{0}' value='{3}' />
<script type='text/javascript'>
$(document).ready(function() {{
_controllers['{0}'] = new ExController({{
id: '{0}',
src: '{1}',
}});
_controllers['{0}'].Load();
}});
</script>",
id,
src,
Request[id + "_VIEWSTATE"]);
}