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 ( ) の形式のいくつかのコントロールを<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]) を使用し、そのコントロール (すべての子コントロールを含む) を Panel に追加する必要があります。次に、FindControl を使用して子コントロールを見つけることができます。この方法では、コントロールは .NET コントロール (つまり、.

于 2012-10-17T05:09:25.527 に答える
0

コントロールに id を指定しなかったため、Panel1.Controls[index] でそれらを見つけることができます。これは、追加された最初のコントロールであるため、Panel1.Controls[0] でアクセスできます。

于 2012-10-17T05:11:18.900 に答える