2009-09-29 73 views
-1
Protected Sub btnDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDelete.Click 
     Dim ResourceObject As Object 


     Dim js As [String] = (vbCr & vbLf & " if(confirm('Esta Seguro de eliminar de la lista')==true)" & vbCr & vbLf & " document.getElementById('" & txtRespuesta.ClientID & "').value='true';" & vbCr & vbLf & " else" & vbCr & vbLf & " document.getElementById('") + txtRespuesta.ClientID & "').value='false';" & vbCr & vbLf & " " 
     ScriptManager.RegisterStartupScript(Me, Me.[GetType](), "Key", js, True) 

    If txtRespuesta.Text = False Then 
     -Action 1 
    Else 
      -Action 2 
    End If 

    End Sub 



<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 

<tr > 
     <td align="center" colspan="2"> 
      <asp:TextBox ID="txtRespuesta" runat="server" Width="174px" Height="21px" 
       MaxLength="20" style="font-weight: 700" Font-Names="Verdana" TabIndex="2"></asp:TextBox> 
     </td> 
    </tr> 
<asp:Button ID="btnUpdate" runat="server" Height="28px" 
       style="font-weight: 700" Text="変更" Width="68px" TabIndex="3" /> 
        <asp:Button ID="btnDelete" runat="server" 
    </script> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

調用JS背後不工作調用的JavaScript代碼,從後面確認沒有從代碼工作

回答

0

不,你不能直接從後面的代碼調用JavaScript代碼。瀏覽器當前顯示的頁面與後面的代碼之間沒有直接聯繫。

由後臺代碼創建的頁面尚不存在,它在後臺代碼完成後將存在,將HTML代碼發送到瀏覽器,瀏覽器已解析並將其顯示爲新頁面。

將頁面添加到頁面的腳本將在頁面發送到瀏覽器後運行,但您希望它立即運行,但這不會發生。

另外,您希望使用Javascript代碼更改文本框的值,並且該值可立即在服務器控件中可見。爲了實現這一點,必須在將當前請求發送到瀏覽器之前及時發回該值,以便在創建時將該值讀入到控件中。

您應該在頁面上已經有您的確認代碼,以便您可以在頁面回發到服務器之前在瀏覽器中運行它。一旦回發被髮送,在瀏覽器中完成請求並將新頁面加載之前,在瀏覽器中執行任何操作都爲時已晚。

+0

謝謝。任何其他解決方法來完成此事。 – rockrule

+0

即時通訊使用ajax確認按鈕擴展器。這解決了我的問題。感謝您的寶貴意見。 – rockrule