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
答案 0 :(得分:0)
不,你不能直接从后面的代码调用Javascript代码。当前显示在浏览器中的页面与后面的代码之间没有直接连接。
由后面的代码创建的页面尚不存在,它将在后面的代码完成后存在,将HTML代码发送到浏览器,浏览器已解析它,并将其显示为新页面。
添加到页面的脚本将在页面发送到浏览器后运行,但您希望它立即运行,但这不会发生。
此外,您希望Javascript代码更改文本框的值,并将该值立即显示在服务器控件中。为了实现这一点,必须在将当前请求发送到浏览器之前及时发回该值,以便在创建控件时将该值读入控件。
您应该已在页面上显示确认代码,以便在将页面发回服务器之前在浏览器中运行它。发送回发后,在请求完成并在浏览器中加载新页面之前,在浏览器中执行任何操作都为时已晚。