2016-08-22 2 views
1

Я знаю, что многие люди уже задавали подобные вопросы. Я прочитал тонну ответов, но никто, кажется, не решил мою проблему. У меня есть форма, которая позволяет пользователю выбрать файл и выбрать дату, из которой должен быть импортирован файл. Когда дата меньше (до) последнего периода импорта (который является полем в базе данных, отслеживающим последние даты импорта), я хочу отобразить confirmbox, чтобы предупредить пользователя о том, что продолжение импорта может перезаписать некоторые данные. Пользователь может выбрать Да для продолжения импорта или Нет для отмены импорта. Я попробовал методКак получить подтверждение возврата в ASP.NET C#

OnClientClick

из

осины: Кнопка

управления. Проблема в том, что он был немедленно запущен, пользователь нажимает кнопку отправки, и я не хочу отображать окно подтверждения, пока я не проверил с последним периодом импорта, который будет выполнен на стороне сервера C#. Я попытался записать возвращаемое значение в скрытое поле:

if (confirm("This Import Process Will Overwrite Existing Data. Do You Want to Continue?")) { 
      document.getElementById("ans").value = "Yes"; 
      return true; 
     } else { 
      document.getElementById("ans").value = "No"; 
      return false; 
     } 

Это тоже не сработало. Я пробовал решение отсюда: Javascript confirm message problem

Как-то, я не могу заставить его работать с моим решением, потому что у них есть updatePanel, которые они используют. Я использую только DatePicker, DropDownList (для выбора клиента для импорта данных) и скрытого поля (при необходимости). Пожалуйста, помоги, если можешь. Я могу настроить любой из вышеперечисленных или совершенно новых решений. Благодарю.

+0

кажется мне, как форма получает представлены после 'button' щелкают и поэтому значение передается в скрытом поле что используется. Это практически невозможно изменить, как только оно будет представлено. Мои наблюдения, хотя –

ответ

1

Попробуйте это, его работу хорошо для меня:

var c = confirm('Your message'); 
    if (c == true) 
    { 
     document.getElementById('<%= HiddenField1.ClientID %>').value = 1; 
    } 
    else 
    { 
     document.getElementById('<%= HiddenField1.ClientID %>').value = 0; 
    } 

Вы можете получить доступ к скрытому в коде позади.

+0

Позвольте мне попробовать это сейчас. –

+0

Ваше решение не решает мою проблему. Он просто идет, чтобы выбрать операцию по умолчанию, даже не отображая окно подтверждения –

+0

, когда вы назвали этот javascript ?? –

1

Попробуйте this..You не получит значение да или нет скрытого поля

<script type="text/javascript"> 
    function ShowConform() { 
     var confirm_value = document.createElement("INPUT"); 
     confirm_value.type = "hidden"; 
     confirm_value.name = "confirm_value"; 
     if (confirm("Do you want to save data?")) { 
      confirm_value.value = "Yes"; 
     } else { 
      confirm_value.value = "No"; 
     } 

     var cn = document.forms[0].appendChild(confirm_value).value; 
     //alert(cn); 
     var c=document.getElementById('<%= hiddenfeid.ClientID %>').value 
     c = cn; 
     // alert(c); 

    } 

</script> 
+0

Хорошо. Теперь, как я получу возвращаемое значение (true или false)? Потому что я использую 'ScriptManager' для вызова окна подтверждения кода –

Смежные вопросы