ページの読み込み時にコードで生成されたボタンと、デザイン ビューで手動で追加されたボタンに関する大きな疑問。
手動で 140 個のボタンを追加することはできないため、コードを使用することをお勧めします。ボタンをクリックすると、すべてのボタンが同様に動作します(色が変わります)。明らかに 140 個のクリック イベント メソッドを作成することはできません。
私はこれを行うことを考えました:
protected void btn_Click(object sender, EventArgs e)
{
Button btn1 = Panel2.FindControl("btn") as Button;
btn1.BackColor = Color.Red;
}
すべてのボタンは btn と呼ばれているためです。
これは私がボタンを追加する方法です:
for (int a = 1; a <= 10; a++)
{
for (char b = 'A'; b <= 'N'; b++)
{
btn = new Button();
btn.Text = "";
btn.Height = 20; btn.Width = 20;
btn.ToolTip = a + " " + b;
Panel2.Controls.Add(btn);
}
Panel2.Controls.Add(new LiteralControl("<br/>")); // this inserts a paragraph
}
btn_Click(object sender, EventArgs e)
ボタンをクリックするとすべて消えるため、機能するかどうかはわかりません。どうすれば修正できますか?
最後に、red のボタンの数を数えます。私の次のアイデアは実用的ですか?「btn」というボタン コントロールを見つける方法はわかっていますが、特定のプロパティを持つ「ボタン」を見つける方法はわかっています。 10N) 各ボタンをチェックし (それぞれに固有のツールチップがあることを考慮して)、毎回色をチェックします. 赤い色ごとに、ボタンを数えます.
それらがすべて「btn」と呼ばれているのは問題ですか?今のところ、私が言ったように、1A、1B、...10N というツールチップでそれらを区別することができます。どうもありがとう。
編集>>>>>>> ベンのアドバイスを試してみましたが、問題は、いずれかをクリックするとすべてのボタンが消えることです。お待ちいただきありがとうございます。
public partial class Seatalloc2 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateControls();
}
}
protected void PopulateControls()
{
Panel1.Visible = true;
Button btn;
Panel2.Visible = true;
DropDownList nrbileteddl = Panel1.FindControl("nrBileteddl") as DropDownList;
nrbileteddl.Visible = true;
for (int i = 1; i <= 5; i++)
{
nrbileteddl.Items.Add(i + "");
}
for (int a = 1; a <= 10; a++)
{
for (char b = 'A'; b <= 'N'; b++)
{
btn = new Button();
btn.Text = "";
btn.Height = 20;
btn.Width = 20;
btn.ToolTip = a + " " + b;
btn.BackColor = Color.Green;
btn.Click += new EventHandler(btn_Click);
Panel2.Controls.Add(btn);
}
Panel2.Controls.Add(new LiteralControl("<br/>"));
}
}
protected void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = Color.Red;
}
}