いくつかのイベントを表示するカレンダーをコーディングしています。毎日、朝、午後、夜のイベント用のボタンがあり、イベントがある場合は、ボタンが有効になっていることを示し、色が変わります。これらのボタンを html テーブルに表示していますが、誰かが表示されている月を変更すると、プログラムはボタンをすべて無効にして色を再び白に設定することでボタンを「クリーンアップ」する必要があります。次のように、ボタンを含むテーブルで FindControl メソッドを使用して、それらを有効にすることができました。
string butControl = /* id of the button */
Button block = mainTable.FindControl(butControl) as Button;
block.BackColor = Color.Gray;
block.Enabled = true;
そして、それはうまくいきます。私のクリーンアップ メソッドでは、105 個あるため、ボタンのすべての名前を呼び出したくありません。代わりに、次のメソッドを使用しました。
private void CleanUp()
{
foreach (Control c in mainTable.Controls)
{
Button bot = c as Button;
if (bot != null)
{
bot.BackColor = Color.White;
bot.Enabled = false;
}
}
}
ただし、これによってボタンの色や有効なプロパティが変更されることはありません。私の質問は: テーブルの Controls プロパティのコントロールは、FindControl メソッドを介して見つけることができるものと同じではありませんか? または、コントロールを取得するときに何か間違ったことをしていますか?