ASP.NET にいくつかの動的コントロールがあります。存在しなくなったコントロールからポストバックの値を取得する必要があります。
次のコードは完全に機能します。
value = Request.Form["ctl00$ContentPlaceHolder1$text_name"];
ただし、パーツを動的に生成したり、コントロールが存在しなくなったときに"ctl00$ContentPlaceHolder$"
値を取得したりするエレガントな方法があるかどうかは疑問です。textbox_value.UniqueID
この質問が何百万回も前に出てきた場合はお詫びします。サーバーの設定を変更する必要のない、より洗練されたソリューションを探しているだけです。
編集:
リクエストに応じて、コントロールを追加するコードは次のようになります。
foreach (NameValuePair entry in database_table){
Label label = new Label();
label.ID = "label_" + entry.Name;
label.Value = entry.Name;
label.Attributes.Add("runat", "server");
TextBox textBox = new TextBox();
textBox.ID = "text_" + entry.Name;
textBox.Text = entry.Value;
textBox.Attributes.Add("runat", "server");
}
ボタンをクリックすると、データベース テーブルから名前と値のペアが読み込まれ (エントリの数は静的ではありません)、それらを変更できるようになり、[保存] ボタンが押されたときに保存されます。ポップアップのように機能するため、フィールドはポストバックで消えます。(コードのこの部分は変更しないでください)
ありがとう〜