我加载了一段包含以下内容的html:
<em> < input type="text" value="Untitled" name="ViewTitle" id="ViewTitle" runat="server"> </em>
进入我的控制之中。 html是用户定义的,请不要让我在aspx页面上静态添加它们。
在我的页面上,我有一个占位符,我可以使用
LiteralControl target = new LiteralControl ();
// html string contains user-defined controls
target.text = htmlstring
渲染它的属性。我的问题是,因为它是一个html片段,即使我知道输入框的id,我也无法使用FindControl("ViewTitle")
访问它(它只会返回null),因为它作为文本呈现为Literal控件和所有输入控件未添加到容器的控件集合中。我绝对可以使用Request.Form["ViewTitle"]
来访问它的值,但是如何设置它的值?
答案 0 :(得分:0)
您的流程错误,您正在使用属性runat="server"
此属性仅在控件由服务器处理时才有效,您只是按 呈现
由于您的目标是添加 这样的事情: 并检索它:TextBox
(如果我错了,请更正我),那么为什么不在表单的控件集合中添加新的TextBox
??? p>
protected void Page_Init(object sender, EventArgs e)
{
var textbox = new TextBox { ID="myTextBoxID", Text="Some initial value" };
this.myPlaceHolder.Controls.Add(textbox);
}
var myDynamicTextBox = this.FindControl("myTextBoxID") as TextBox;
答案 1 :(得分:0)