#c# #javascript #asp.net
#c# #javascript #asp.net
Вопрос:
мне нужно, чтобы пользователь нажал OK или CANCEL:
protected void Button1_Click(object sender, EventArgs e)
{
CallRecursive(TreeView1);
string confirmationMessage;
confirmationMessage = @"Please review the data before submitting:" "rn"
"Sample Received Date: " received_dateTextbox.Text "rn"
"Site of Ocurrence: " site_of_occurrenceTextBox.Text "rn"
"Occurrence Date: " occurrence_dateTextBox.Text "rn"
"Report Date: " report_byTextBox.Text "rn"
"Specimen ID: " spec_idTextBox.Text "rn"
"Batch ID: " batch_idTextBox.Text "rn"
"Report Initiated By: " report_byTextBox.Text "rn"
"Problem Identified By: " RadioButtonList1.SelectedValue "rn"
nodetexts;
HiddenFieldConfirmation.Value = confirmationMessage;
************i need function ConfirmWithUser() to run here from javascript*************
if (HiddenFieldUserConfirmed.Value != "no")
{
SubmitData();
CallRecursive(TreeView1);
nodetexts = ";";
}
}
вот javascript:
function ConfirmWithUser() {
if (confirm(document.getElementById('HiddenFieldConfirmation').value) == true)
{ document.getElementById('HiddenFieldUserConfirmed').value='yes'; }
else
{ document.getElementById('HiddenFieldUserConfirmed').value='no';}
как мне запустить эту функцию ConfirmWithUser()
при нажатии кнопки внутри кода за кодом, как показано выше:
другие слова, которые мне нужны:
- после того, как пользователь нажимает кнопку, выполняется первая часть codebehind
- javascript внутри codebehind завершается
- последняя часть кода выполняется
Комментарии:
1. Вы не понимаете HTTP-модель. Ваш дизайн не может работать; вам нужна отдельная обратная передача после установки значения в клиенте.
2. Это принципиально невозможно. Вам нужно изучить HTTP и программирование клиент-сервер.
3. @slaks, вам нужно немедленно выполнить одно и то же
Ответ №1:
В Javascript нет переменной с именем confirmationMessage
.
Вам нужно вызвать HttpUtility.JavaScriptStringEncode
и вставить значение переменной на стороне сервера в виде строкового литерала Javascript.
Однако ваш дизайн не может работать; if (HiddenFieldUserConfirmed.Value != "no")
он будет выполняться (на сервере) перед кодом Javascript на стороне клиента.
Вам нужно понимать, как работает разделение HTTP и клиент / сервер.
Ответ №2:
Из вашего кода неясно, где выполняется код.
Вам необходимо зарегистрировать скрипт в page_load внутри раздела !ispostback. Затем вам нужно проверить скрытое значение, например, в ответ на обработчик нажатия кнопки.
Более подробная информация после редактирования
Вам нужно переместить код, который создает ваше сообщение javascript, в ваш page_load и зарегистрировать обработчик onclientclick с помощью функции javascript. Затем при нажатии кнопки этот javascript будет запускаться, заполняя ваше скрытое поле, а затем отправляя форму для обработки на стороне сервера.