0

ユーザーがラベル要素を追加できるようにする ASP サイトを取得しました。追加されたラベルの数や ID がわかりません。私が知っているのは、それらが Panel pnl_Added 内にあるということだけです。ユーザーがすべてのラベルを追加したら、更新のために送信ボタンを押します。

今、私はサーバーにいて、このポストバックを待っていますが、どの要素が pnl_Added に追加されたか、いつ、どこで、どのように見つければよいかわかりません。誰か助けてくれませんか?

私はそのようなことを試しました:

protected void Page_Load(object sender, EventArgs e)
{
[...]
for (int i = 0; i < pnl_Added.Controls.Count; i++)
        {
            [...]
        }
[...]
}

しかし、ロードされたViewStateのために手遅れだと思いますか? それは可能ですか?

私は VS 2013、ASP c#、.Net Framework 4 を使用しています。

4

2 に答える 2

0

Requestポストバックがなかったため、コントロール pnl_Added はそれらの要素を認識していないため、1 つ深く掘り下げて変数から追加された要素を取得する必要があります。

このようなもの:

Request.Form["field_id"]

ページをデバッグ モードで実行し、Request.Form コレクションを確認して、必要なものを見つけることをお勧めします。そこにラベル要素が表示されるはずです。

于 2013-10-07T09:41:53.900 に答える
0

サーバーでは、コントロール ツリーは実際のクライアント HTML から作成されません。input実際、サーバーは、送信されたフォームのスコープ内のタグ値以外に、クライアントの HTML について何も知りません。一般に、メソッドで使用可能なすべてのコントロールは、ファイル マークアップPage_Loadからサーバー側で作成されます。aspx

シナリオを実装するには、クライアントから追加されたラベルごとに隠しフィールドを追加し、ラベルの内部テキストを隠しフィールドの値に保存する必要があります。次に、これらのラベル テキストを以下のように取得できます。

var labels = Request.Form["hiddenField's name"] as string[];
于 2013-10-07T12:25:27.627 に答える