-テキストボックスがたくさんあるフォームがあります。-「クリア」をクリックすると、すべてをリセットするか、.Text 値を「 」に設定する必要があります。. " (Textbox1.text=""; ) " を 14 回または 15 回書く必要はありません。・必要以上に難しくしないでください。-asp.net 4.5 を使用しています。
質問する
3194 次
6 に答える
1
階層の深いコンテナー コントロール上にあるかどうかに関係なく、親コントロール上の指定された型のすべての子コントロールを列挙するこの便利なメソッドがあります。
public List<T> FindControl<T>(Control holder) where T : Control
{
var result = new List<T>();
foreach (Control control in holder.Controls)
{
if (control is T)
result.Add(control as T);
result.AddRange(FindControl<T>(control));
}
return result;
}
したがって、あなたの場合、すべてのコントロールをPage_Load
次のように取得できます。
var pageTextBoxes = FindControl<TextBox>(this);
でこれを行うと、Page_Load
これが現在のページになり、ページ上のすべてのテキスト ボックスが取得されるので、クリアするだけです。
foreach (var txtControl in pageTextBoxes)
{
txtControl.Text = "";
}
TextBox ID が LeftControl で始まる場合など、さらに条件が必要な場合:
foreach (var txtControl in pageTextBoxes.Where(tx => tx.ID.StartsWith("LeftControl")))
{
txtControl.Text = "";
}
于 2013-10-18T18:23:24.453 に答える
0
次の 2 つの方法のいずれかを使用できます。
- HTMLリセットボタンを追加します。ボタンをクリックすると、値が最後の値に自動的にリセットされます
こちらをご覧ください http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_reset
- 最初のものはポストバック後に機能しませんが、サーバー側のコードを記述する代わりに JavaScript を使用してそれを行うことができます。次のメソッドを使用してフォームを渡すか、それに応じて変更できます。
http://www.javascript-coder.com/javascript-form/javascript-reset-form.phtml
于 2013-10-18T20:11:46.187 に答える
0
ページ上のすべてのコントロールをループして、テキスト ボックスであるコントロールをクリアすることができます。このようなものがあなたが始めるのに役立つかもしれません:
public void ClearTextBoxes(Control parent)
{
foreach (Control c in parent.Controls)
{
if ((c.GetType() == typeof(TextBox)))
{
// Clear the text box
((TextBox)(c)).Text = "";
}
}
}
したがって、ボタンのクリック時にこの関数を呼び出すことができます。
ClearTextBoxes(this);
于 2013-10-18T18:01:12.623 に答える