0

Textbox1.text 是用户可以输入html页面名称,以便通过文字附加到面板。(加载html页面到面板)。

string val = TextBox1.Text;
string location = Server.MapPath(".");
string path = location + "\\HTML\\" + val + ".html"; // HTML IS FOLDER NAME IN MY PROJECT
string readText = System.IO.File.ReadAllText(path);
Panel1.Controls.Clear();
Literal lit = new Literal();                
lit.Text = readText;
Panel1.Controls.Add(lit);

实际上,在 Html 页面中,很少有输入格式的控件(<input style="position: relative;" id="T0" onmouseup="mUp(this.id)" class="ui-draggable" onmousedown="mDown(this.id)" value="" type="text">)我必须找到这些 id 和文本以保存在数据库中。现在如何在面板中找到控件?

4

3 回答 3

1

添加控件时为其提供一个 ID。

Literal lit = new Literal();                
lit.Text = readText;
lit.ID = "myLiteral";
Panel1.Controls.Add(lit);

然后你可以按如下方式取回它:

Literal lit = (Literal)Panel1.FincControl("myLiteral");   

PostBack请记住,只要您想访问它们,就必须在随后的每个控件上再次创建动态添加的控件。

于 2012-10-17T05:10:20.533 回答
0

为您的 Literal 提供一个 ID,然后您可以通过 FindControl 访问它...

Literal myLiteral = Panel1.FindControl("litId") as Literal;
if (myLiteral != null)
{
    // ... do something
}

编辑:(错过了你问题的最后一部分)

您需要在返回控件的 HTML 内容上使用 ParseControl([string value]),然后将该控件(包含所有子控件)添加到面板。然后你可以使用 FindControl 来定位子控件。对于此方法,控件必须是 .NET 控件(即。

于 2012-10-17T05:09:25.527 回答
0

由于您没有为控件提供 id,您可以通过 Panel1.Controls[index] 找到它们,因为它是您可以在 Panel1.Controls[0] 访问的第一个添加的控件

于 2012-10-17T05:11:18.900 回答