asp.net c # Кнопка команд не запускает код команды при нажатии - PullRequest
1 голос
/ 27 марта 2012

У меня есть приложение c # asp.net, которое имеет 3 страницы. страница 1 - ввод данных. Страница 2 - это поиск по имени. На странице 3 представлена ​​сводная информация об учетной записи.

Первая страница содержит 2 asp: текстовое поле (поля) и 2 кнопки. Первое текстовое поле позволяет пользователю ввести номер счета. Второе текстовое поле позволяет пользователю вводить имя для поиска «поиск номера счета по имени». Кнопка 1 отправляет номер счета в текстовом поле № 1 на страницу сводки счета через строку запроса. Кнопка 2 отправляет имя на страницу поиска по имени через строку запроса.

На странице поиска имени отображается список номеров и имен учетных записей, причем номер учетной записи представляет собой ссылку href обратно на ввод данных. Номер учетной записи возвращается на страницу ввода данных через строку запроса в ссылке на странице поиска имени.

Моя проблема возникает как таковая. Когда я возвращаюсь на страницу ввода данных либо со страницы поиска имени, либо со страницы сводки по учетной записи ... Я анализирую строку запроса, чтобы предварительно заполнить значение текстового поля # 1 номером счета.

Если пользователь затем изменяет предварительно заполненный номер учетной записи и нажимает кнопку № 1. Данные на сводной странице учетной записи относятся к предварительно заполненному номеру учетной записи, а не к новому номеру учетной записи, введенному пользователем.

Код для командной кнопки устанавливает значение текстового поля # 1 и вставляет его в строку запроса как часть события click; однако строка запроса сохраняет предварительно заполненное значение.

            case "summary":

            sAPN = txtAPN.Text.ToString();  (<--- Textbox 1) this always comes out as the    prepopulated value.
            sfxbal = fxbal.CheckAPN(sAPN);  (<---- Validation function)
            if (sfxbal.Length == 14)        
            {
                sAPN = sfxbal;
                sfxbal = "";
            }

            if (sfxbal == "")
                Response.Redirect("CreateAccount_Summary.aspx?APN=" + sAPN);
            else
                Response.Redirect("GetAPN.aspx?APNError=" + sfxbal);
            break;

Я пробовал использовать поведение «Отправить» в false. Я попытался использовать javascript "onblur", и хотя я могу отображать в предупреждении значение txtAPN (текстовое поле 1) с новым введенным пользователем значением, а не с предварительно заполненным значением, данные всегда для предварительно заполненного значения ,

Проверка также не выполняется.

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

Абсолютно действует так, будто мой код команды пропущен. Почему это произошло?

1 Ответ

1 голос
/ 27 марта 2012

У меня сильное чувство, что вы устанавливаете свойство Text при каждой загрузке страницы.

Вам нужно установить свойство Text один раз (только после выполнения GET):

protected void Page_Load(object sender, EventArgs e) 
{
    if (!Page.IsPostBack)
    {
       txtAPN.Text = ....;
    }
}

В противном случае при каждой отправке формы текстовое поле будет получать значение из строки запроса (оно перезаписывает значение, данное пользователем).

...