bugfix> asp.net > 投稿

DataGridのItemDataBoundを使用して、以下のタスクを実行しています。

  1. 行に存在するCheckBoxのチェック値を確認します。
  2. チェックされた値に基づいて、同じ行の3つのテキストボックスのEnabledプロパティを設定します。

ここに私のコードがあります:

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            CheckBox ck = (CheckBox)e.Item.FindControl("chkStatus");
            bool isChecked = ck.Checked;
            TextBox txt1 = ((TextBox)e.Item.FindControl("txt1"));
            TextBox txt2 = ((TextBox)e.Item.FindControl("txt2"));
            TextBox txt3 = ((TextBox)e.Item.FindControl("txt3"));
            txt1.Enabled = isChecked;
            txt2.Enabled = isChecked;
            txt3.Enabled = isChecked;
 }

ブレークポイントを配置し、有効な値が適切に設定されていることを確認します。たとえば、CheckBoxがチェックされている場合、3つすべてのtextboxes.Enabledプロパティはtrueに設定され、そうでない場合はfalseに設定されます。しかし、一度押すと、CheckBoxがオンになっている行で、3つのテキストボックスがすべて有効になります。しかし、チェックボックスがオフになっている行では、3つのテキストボックスも無効ではなく有効になっています。

これがスクリーンショットです。

誰でも私のコードの何が間違っているのか説明できますか? ItemDataBoundイベントが完了したときに何が起こるか知りたいのですが。値をいじっている他の関数が自動的に呼び出されていますか?ビューステートを有効にしてみました。しかし、まだ役に立たない。

BackGround Colorプロパティを設定します。それは結構です。ただし、Eanbledプロパティはfalseに設定されていません。

前もって感謝します。