не считываются поля при xxx.Enable=false;

maersk
Дата: 28.06.2010 18:25:02
есть код:
______________________________________________________
protected void Page_Load(object sender, EventArgs e)
{
        if (!Page.IsPostBack)
        {
            Load_data();
        }
}
protected void Load_data()
{
   Data_1.Text="1";
   Data_1.Enable=false;

   Data_2.Text="2"; 
}
protected void btnSave_Click(object sender, EventArgs e)
{
    int x=int.Parse(Data_1.Text);        //ВОТ В ЭТОМ МЕСТЕ ГОВОРИТ ЧТО Data_1.Text=NULL
    int y=int.Parse(Data_2.Text);
    ......
    MetodSaveData(x,y);
}
___________________________________________________________

Вопрос, почему при щелчке на кнопке Save при считке на сервере Data_1.Text=NULL ????
и как этого избавиться.
Модератор: Отредактировано. Что по-человечески не написать?
maersk
Дата: 28.06.2010 19:16:06
Вопрос частично решен,
проблема решается 2 способами - но оба они <половинчаты>

1 способ:
в JavaScript прописать все поля при нажатии кнопки Save в Disabled=false;

2 способ:
//поменять Data_1.Enable=false; на
Data_1.ReadOnly = true;
Data_1.ControlStyle.ForeColor = System.Drawing.Color.Gray;

Если у кого есть есть более мудрое решение буду рад ознакомиться.
vx_user
Дата: 28.06.2010 20:19:56
maersk,

Все правильно:
Если контрол disabled, то его содержимое нельзя редактировать и оно исключается из результатов отправки формы.

Если контрол readonly, его содержимое нельзя редактировать, но оно (содержимое) отправляется на сервер в результате сабмита формы.

Т.ч. второй вариант более правильный.