2016-08-22 121 views
1

我知道一些人已經問過類似的問題。我已經閱讀了大量的答案,但似乎沒有解決我的問題。 我有一個表格,允許用戶選擇一個文件,並選擇一個日期,該文件應該從中導入。如果日期小於(之前)最後一個導入時間段(這是數據庫中跟蹤上次導入日期的一個字段),我想要顯示confirmbox以提醒用戶繼續導入可能會覆蓋一些數據。用戶可以選擇是繼續導入,否則選擇否取消導入。我曾嘗試如何獲得ASP.NET中的確認框返回值C#

ASP的

的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他們正在使用。我只使用DatePickerDropDownList(用於選擇要導入數據的客戶端)和隱藏字段(如果需要)。如果可以的話請幫忙。我可以對上述任何一種方式進行調整,或者全新的解決方案。謝謝。

+0

在我看來就像被提交一次'button'形式點擊,所以在隱藏字段中傳遞的值是用什麼。一旦提交,幾乎不可能改變。我的觀察雖然 –

回答

1

試試這個,它的工作對我罰款:

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

你可以在你的代碼訪問HiddenField後面。

+0

現在讓我試試這個。 –

+0

您的解決方案不能解決我的問題。它只是繼續選擇默認操作,甚至不顯示確認框 –

+0

你什麼時候調用這個JavaScript? –

1

嘗試this..You將獲得值yes或no來隱藏字段

<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'來調用後面代碼的確認框 –