我是要在点 ok 按钮的时候弹出对话框,如果放在Page.IsPostBack==false里面,点ok 的时候不会弹出来。 Imports System.Data.SqlClient Imports System.TextPublic Class newuser Inherits System.Web.UI.Page Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents imgOK As System.Web.UI.WebControls.ImageButton Protected WithEvents txtUserID As System.Web.UI.WebControls.TextBox Protected WithEvents txtFullNm As System.Web.UI.WebControls.TextBox Protected WithEvents rbCorp As System.Web.UI.WebControls.RadioButton Protected WithEvents rbCons As System.Web.UI.WebControls.RadioButton Protected WithEvents txtDept As System.Web.UI.WebControls.TextBox Protected WithEvents txtRC As System.Web.UI.WebControls.TextBox Protected WithEvents reqOutlookID As System.Web.UI.WebControls.RequiredFieldValidator Protected WithEvents reqFullNm As System.Web.UI.WebControls.RequiredFieldValidator Protected WithEvents reqDept As System.Web.UI.WebControls.RequiredFieldValidator Protected WithEvents reqRC As System.Web.UI.WebControls.RequiredFieldValidator Protected WithEvents imgClear As System.Web.UI.WebControls.ImageButton Dim DB_env As New latte_env.DB_env() Dim DBHandler As New DBHandler.Tools() Dim UserHandler As New UserHandler.User() Protected WithEvents txtConfirm As System.Web.UI.WebControls.TextBox Dim FuncHandler As New funcHandler()#Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here Dim lastAccess As DateTime Dim sUsergroup As String If User.Identity.Name <> "" Then viewState("CurrentUser") = UserHandler.getUserID(User.Identity.Name) Dim dr As SqlDataReader = UserHandler.GetUserData(viewState("CurrentUser"), "") Do While dr.Read() If dr("LASTACCESSED").ToString <> "" Then lastAccess = Trim(dr("LASTACCESSED").ToString) Else lastAccess = Now() End If sUsergroup = Trim(dr("USERGROUP").ToString) ' Add by ynjn for Admin Module If dr("USER_ROLE").ToString = "Admin" Then 'lnkAdm.Enabled = True End If Loop dr.Close() ConfirmMsg1(Me, "New user " + txtUserID.Text + " will be created", txtConfirm) imgOK.Attributes.Add("OnClick", "javascript: getConfirm()") End If End Sub Private Sub imgClear_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgClear.Click Response.Redirect("../Admin/newuser.aspx") End Sub Private Sub imgOK_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgOK.Click If txtConfirm.Text = "TRUE" Then MsgBox(Me, txtConfirm.Text) End If End Sub End Classjavascript: Public Function ConfirmMsg1(ByVal page As System.Web.UI.Page, ByVal msg As String, _ ByVal txtConfirm As System.Web.UI.WebControls.TextBox) Dim s As New StringBuilder() s.Append("<script language='javascript'>") s.Append("function getConfirm(){") s.Append("answer = confirm('" + msg + "');") s.Append("answer = confirm('" + msg + "');") s.Append("if (answer==true)") s.Append("form1.txtConfirm.value = 'TRUE';") s.Append("if (answer==false) ") s.Append("form1.txtConfirm.value = 'FALSE';}") s.Append("</script>") page.RegisterStartupScript("Confirm", s.ToString) Return s.ToString End Function
javascript function:<script language='javascript'> function getConfirm() {answer = confirm('New user aaa will be created'); answer = confirm('New user aaa will be created'); if (answer==true)form1.txtConfirm.value = 'TRUE'; if (answer==false) form1.txtConfirm.value = 'FALSE';} </script>
去掉RequiredFieldValidator可以弹出来了,可是第一个框弹出来的总是user 名称没有赋好值得,怎么赋值?好像一定要做好javascript 生成,也就是 ConfirmMsg1(Me, "New user " + txtUserID.Text + " will be created", txtConfirm)之后,一定要提交一次才可以,做好这个能做一次提交马?怎么做?
Imports System.Data.SqlClient
Imports System.TextPublic Class newuser
Inherits System.Web.UI.Page
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents imgOK As System.Web.UI.WebControls.ImageButton
Protected WithEvents txtUserID As System.Web.UI.WebControls.TextBox
Protected WithEvents txtFullNm As System.Web.UI.WebControls.TextBox
Protected WithEvents rbCorp As System.Web.UI.WebControls.RadioButton
Protected WithEvents rbCons As System.Web.UI.WebControls.RadioButton
Protected WithEvents txtDept As System.Web.UI.WebControls.TextBox
Protected WithEvents txtRC As System.Web.UI.WebControls.TextBox
Protected WithEvents reqOutlookID As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents reqFullNm As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents reqDept As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents reqRC As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents imgClear As System.Web.UI.WebControls.ImageButton Dim DB_env As New latte_env.DB_env()
Dim DBHandler As New DBHandler.Tools()
Dim UserHandler As New UserHandler.User()
Protected WithEvents txtConfirm As System.Web.UI.WebControls.TextBox
Dim FuncHandler As New funcHandler()#Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub#End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim lastAccess As DateTime
Dim sUsergroup As String If User.Identity.Name <> "" Then
viewState("CurrentUser") = UserHandler.getUserID(User.Identity.Name)
Dim dr As SqlDataReader = UserHandler.GetUserData(viewState("CurrentUser"), "")
Do While dr.Read()
If dr("LASTACCESSED").ToString <> "" Then
lastAccess = Trim(dr("LASTACCESSED").ToString)
Else
lastAccess = Now()
End If
sUsergroup = Trim(dr("USERGROUP").ToString)
' Add by ynjn for Admin Module
If dr("USER_ROLE").ToString = "Admin" Then
'lnkAdm.Enabled = True
End If
Loop
dr.Close()
ConfirmMsg1(Me, "New user " + txtUserID.Text + " will be created", txtConfirm)
imgOK.Attributes.Add("OnClick", "javascript: getConfirm()")
End If
End Sub Private Sub imgClear_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgClear.Click
Response.Redirect("../Admin/newuser.aspx")
End Sub Private Sub imgOK_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgOK.Click If txtConfirm.Text = "TRUE" Then
MsgBox(Me, txtConfirm.Text)
End If
End Sub
End Classjavascript:
Public Function ConfirmMsg1(ByVal page As System.Web.UI.Page, ByVal msg As String, _
ByVal txtConfirm As System.Web.UI.WebControls.TextBox)
Dim s As New StringBuilder()
s.Append("<script language='javascript'>")
s.Append("function getConfirm(){")
s.Append("answer = confirm('" + msg + "');")
s.Append("answer = confirm('" + msg + "');")
s.Append("if (answer==true)")
s.Append("form1.txtConfirm.value = 'TRUE';")
s.Append("if (answer==false) ")
s.Append("form1.txtConfirm.value = 'FALSE';}")
s.Append("</script>")
page.RegisterStartupScript("Confirm", s.ToString)
Return s.ToString
End Function
<input type="image" name="imgOK" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="imgOK" OnClick="getConfirm()" src="/latte/images/blue_button/ok.gif" alt="Register New User" border="0" style="height:20px;width:50px;" /> 有两个onclick方法
imgOK.Attributes .Add ("onclick","return getConfirm()"); s.Append("<script language='javascript'>")
s.Append("function getConfirm(){")
s.Append("answer = confirm('" + msg + "');")
s.Append("if (answer==true)")
s.Append("form1.txtConfirm.value = 'TRUE';")
s.Append("if (answer==false) ")
s.Append("{")
s.Append("form1.txtConfirm.value = 'FALSE';}")
s.Append("return false;")
s.Append("}")
s.Append("</script>")
function getConfirm()
{answer = confirm('New user aaa will be created');
answer = confirm('New user aaa will be created');
if (answer==true)form1.txtConfirm.value = 'TRUE';
if (answer==false) form1.txtConfirm.value = 'FALSE';}
</script>
试了你的这个,这句也是写在page load 里对吗?还是不能弹出对话框。
这是生成的代码,会不会因为我用了RequiredFieldValidator,多了一个onclick的原因?
<input type="image" name="imgOK" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="imgOK" OnClick="javascript: getConfirm()" src="/latte/images/blue_button/ok.gif" alt="Register New User" border="0" style="height:20px;width:50px;" />