我有一个这样的用户控件定义
<%@ Control .....
<Test:MyCustomControl id="xxx" runat="server>
</Test:MyCustomControl>
我想在类似
<Tag:MyControl runat="server">
<div>
my html
</div>
</Tag...
在我的自定义控件代码隐藏中,我想读取内部 html 并将其设置为 Test:MyCustomcontrol 的属性
目前我收到一个错误,说"...没有属性div"
我该怎么做?
注意:为了澄清起见,内部html可以是任意html,因此我需要一种方法来读取用户在页面中键入的任何内容。
您可以将div(在服务器上运行)作为用户控件的属性公开
在用户控件 HTML 上:
<div id="dvSomething" runat="server"></div>
在用户控件代码隐藏".cs文件"上:
public System.Web.UI.HtmlControls.HtmlGenericControl TheDiv
{
get
{
return dvSomething;
}
set {
dvSomething = value;
}
}
在包含用户控件的页面上:
WebUserControl11.TheDiv.InnerHtml = "addin something to div from page";
祝你好运
如果有人需要不同的解决方案,我将保持另一个问题开放:
我不确定您的要求,但这里有两个解决方案,我希望这就是您想要的:
一个添加控件(顺便说一下,您可以添加任何控件,而不仅仅是文本框)和其他纯 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;
当然,索引会根据用户控件上的元素数量而变化