我有一个像这样定义的用户控件
<%@ Control .....
<Test:MyCustomControl id="xxx" runat="server>
</Test:MyCustomControl>
我想在
这样的页面上使用此控件<Tag:MyControl runat="server">
<div>
my html
</div>
</Tag...
在我的自定义控件代码隐藏中,我想阅读内部html并将其设置为Test的一个属性:MyCustomcontrol
目前我收到的错误是“......没有属性div”
我该怎么做?
注意:为了澄清内部html可以是一个任意的html,所以我需要一种方法来读取用户在页面中输入的任何内容。
答案 0 :(得分:0)
您可以将div(在服务器上运行)作为UserControl的属性公开
在usercontrol html上:
<div id="dvSomething" runat="server"></div>
on ur usercontrol codebehind“.cs file”:
public System.Web.UI.HtmlControls.HtmlGenericControl TheDiv
{
get
{
return dvSomething;
}
set {
dvSomething = value;
}
}
在包含usercontrol的页面上:
WebUserControl11.TheDiv.InnerHtml = "addin something to div from page";
祝你好运
答案 1 :(得分:0)
如果有人需要不同的解决方案,我会保持另一个问题:
我不确定你的嘲笑,但这里有两个解决方案,我希望这是你想要的:
一个添加控件(你可以添加任何方式,不仅是文本框)和其他纯html按照你所描述的
TextBox txtAdd = new TextBox();
txtAdd.Style.Add("width", "200px");
WebUserControl11.Controls.Add(txtAdd);
TextBox txtRead = (TextBox)WebUserControl11.Controls[1];
((System.Web.UI.HtmlControls.HtmlGenericControl)WebUserControl11.Controls[0]).InnerHtml = "<b>something</b>";
string currentHtml = ((System.Web.UI.HtmlControls.HtmlGenericControl)WebUserControl11.Controls[0]).InnerHtml;
当然,索引会根据您在用户控件上的元素数量而改变