asp.net フォームで問題が発生しました。
私のフォーム内で、エンドユーザーは動的に作成するテキストボックスの数を選択します。これはすべて、次のコードで正常に機能します。
protected void txtAmountSubmit_Click(object sender, EventArgs e)
{
int amountOfTasks;
int.TryParse(txtAmountOfTasks.Text, out amountOfTasks);
for (int i = 0; i < amountOfTasks; i++)
{
TextBox txtAddItem = new TextBox();
txtAddItem.ID = "txtAddItem" + i;
txtAddItem.TextMode = TextBoxMode.MultiLine;
questionNine.Controls.Add(txtAddItem);
txtList.Add(txtAddItem.ID);
}
}
ただし、これにより小さな問題も発生しました。後でフォームの送信ボタンをクリックすると、結果が必要な指定された人に送信されます (smtp 電子メールを使用)。これらの動的に作成された textboxes からテキストを取得しようとするまで、この部分は問題ありません。
私が試したこと
この msdn アクセス サーバー コントロール ID メソッドを使用しようとしましたが、うまくいきませんでした。
これらの新しいテキスト ボックスをリストに追加しようとしましたが、テキストが含まれている場合にこれらのテキスト ボックスを更新する方法がわかりませんでした。したがって、このため、結果は null を返していました。
- これなどのSOに関する他の質問も見ましたが、通常、asp.netの問題ではなく、WPFまたはwinformに関するものです(これは通常問題ではありませんが、すべてからテキストを取得する必要はありません私のページのテキストボックスコントロール、動的に作成されたものだけ)。
また、機能することを望んでいたコードの呼び出し方法を変更してみました。
string textboxesText = string.Join("\n", txtList.Select(x => x).ToArray());
次に、連結された文字列 (電子メール本文) で次のように呼び出します。
textboxesText
問題
それらは動的に作成されるため、たとえば txtExampleID.Text などの ID でそれらを呼び出すのは難しいと感じています。また、ID を毎回 1 つずつインクリメントする必要があるため (相互にオーバーライドしないように)、物事を私にはもう少し難しい。
私はコードの解決策を求めているわけではありません。私はまだ学んでいるので、正しい方向へのポインタを好むでしょう。
要約すると、動的に作成されたテキストボックスからテキストを取得して、メール本文に追加する必要があります。