我自己写了个webcontrol,在使用时在aspx页面上用<%=MyVar%>给它的属性上赋值,却发现数据不是按照希望的执行代码后显示,而是将"<%=MyVar%>"原样输出到IE上。请问如何解决。代码如下Aspx Page
<cc1:Test ID="Test1" runat="server" Text='Value <%= "123" %>' />Test控件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace MyCode
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:Test runat=server></{0}:Test>")]
[ParseChildren(true)]
public class Test : WebControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
} set
{
ViewState["Text"] = value;
}
} protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text);
}
}
}输出结果
<span id="Test1">Value <%= "123" %></span>
<cc1:Test ID="Test1" runat="server" Text='Value <%= "123" %>' />Test控件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace MyCode
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:Test runat=server></{0}:Test>")]
[ParseChildren(true)]
public class Test : WebControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
} set
{
ViewState["Text"] = value;
}
} protected override void RenderContents(HtmlTextWriter output)
{
output.Write(Text);
}
}
}输出结果
<span id="Test1">Value <%= "123" %></span>
改为:
<cc1:Test ID="Test1" runat="server" Text='<%="Value" + "123" %>' />