2013-12-22 1 views
1

Мне нужно показать диалог подтверждения на конкретном состоянии. Затем перейдите в соответствии с YES или No clicked.I попытался со следующим.Подтверждение Javascript On if..else .. condition

В ASPX:

<script type="text/javascript"> 
    function ShowConfirmation() { 
    if (confirm("Employee Introduced already.Continue?") == true) { 
     document.getElementById("hdn_empname").value = 1; 
    } 
    } 

</script> 

<asp:HiddenField ID="hdn_empname" runat="server" /> 

в сСт:

if (reader2.HasRows) 
    { 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "showAl", "ShowConfirmation();", true); 
    } 
    else 
    { 
     hdn_empname.Value ="1"; 
    } 

    if ((hdn_empname.Value)=="1") 
    { 
     //some code to execute 
    } 

Но hdn_empname показывает value="" во время отладки.

Может ли кто-нибудь помочь мне сделать это?

Заранее спасибо.

ответ

1

Где ваша точка разрыва? Если reader2.HasRows возвращает true, ваш javascript будет зарегистрирован. Но он устанавливает значение на клиенте, и вы получаете результат после обратной передачи.

+0

Вышеприведенный код (в вопросе) находится под кнопкой. и я установил точку останова при нажатии кнопки. – Shanna

+1

Итак, как я объяснил выше, скрипт зарегистрирован клиенту, и значение будет равно eq 1 в следующем сообщении. Я думаю, что лучше настроить функцию ShowConfirmation на кнопке onClientClick. – Alborz

+0

Хорошо. Но мне нужно это только для определенного условия. – Shanna

3

Попробуйте Вам нужно ClientID

document.getElementById('<%=hdn_empname.ClientID%>').value = 1; 

Я узнал ваши основные проблем

Значение скрытого полей присвоит после вызова, если условий.

Edit:

Таким образом, Вы должны вызвать вашу логику в JavaScript-х на стороне с использованием Ajax

if (confirm("Employee Introduced already.Continue?") == true) { 

//some code to execute 
    } 
+0

Я пробовал. но не работает. – Shanna

+0

Итак, где я могу назначить значения? – Shanna

+1

Alborz уже сказал theis: лучше, чтобы вы установили функцию ShowConfirmation на onClientClick из вас. –

1

hdn_empname является сервер управления Id, который отличается от клиента сторонней идентификатор, чтобы получить клиента одностороннюю идентификатор вам нужно использовать ClientID

попробовать это:

document.getElementById('<%=hdn_empname.ClientID%>').value = "1"; 

Вам не нужно сравнивать

if (confirm("Employee Introduced already.Continue?") == true) 

это будет работать:

if (confirm("Employee Introduced already.Continue?")) 
+0

Нет, это не для меня – Shanna