【发布时间】:2013-01-08 07:57:15
【问题描述】:
首先,请注意我正在使用法语进行开发,因此有些术语是法语,但元素名称是英语。如有任何问题,请随时提出。
我正在使用 vb.net 处理 ASP 网页,并且我有一个带有 4 个文本框的表单。用户可以选择使用他的号码或输入他的姓氏、名字和生日来登录。一开始,当我单击提交按钮时,一切正常,但是现在,当我在文本框中输入文本时,单击提交时,我的所有文本框值都是空的。验证我的表单时,它总是返回 false。
这里是代码隐藏。如果您需要我的代码的其他元素,例如:javascript 代码、html 代码或任何内容,请随时提出。最近几天这个问题让我发疯了,我在 stackoverflow 和其他论坛上阅读了很多文档,但没有成功......
Imports System.Data.SqlClient
Public Class WebForm1
Inherits System.Web.UI.Page
Protected SqlCon_PAIE As New SqlConnection
Protected SqlCon_Gamsco As New SqlConnection
Public Event LostFocus As EventHandler
Private Sub Get_Value_GAMSCO()
Dim strSQL As String
Dim DatS As New DataSet
Dim SQLadap As SqlClient.SqlDataAdapter
SqlCon_Gamsco.ConnectionString = ConfigurationManager.ConnectionStrings("String_Connection_Gamsco").ConnectionString
strSQL = " SELECT TOP 2 * " & _
" FROM [GAMSCO].[RAPPORTS]"
SQLadap = New SqlDataAdapter(strSQL, SqlCon_Gamsco)
SQLadap.Fill(DatS, "Recherche")
SqlCon_Gamsco.Dispose()
End Sub
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
Dim MatriculeComplete As Boolean = False
Dim infosComplete As Boolean = False
If ((Not String.IsNullOrEmpty(txtNumber.Text)) Or (Not String.IsNullOrEmpty(txtLastName.Text) And Not String.IsNullOrEmpty(txtFirstName.Text) And Not String.IsNullOrEmpty(hfDateNaisVal.Value()))) Then
LblWarning.Text = ""
'Si le matricule n'est pas vide
If (hfMatricule.Value().Equals("true")) Then
MatriculeComplete = True
End If
'Si les infos sont complètes
If (Not String.IsNullOrEmpty(txtLastName.Text) And Not String.IsNullOrEmpty(txtFirstName.Text) And Not String.IsNullOrEmpty(hfDateNaisVal.Value())) Then
If (hfDateNais.Value().Equals("true")) Then
infosComplete = True
End If
End If
End If
If (MatriculeComplete = False And infosComplete = False) Then
LblWarning.Text = "Le matricule ou les informations personnelles sont manquantes ou incomplètes"
ElseIf (MatriculeComplete = True) Then
rechercher_employe_matricule(txtNumber.Text)
ElseIf (infosComplete = True) Then
rechercher_employe_infos(txtFirstName.Text, txtLastName.Text, hfDateNaisVal.Value())
End If
reset_champs()
End Sub
Protected Sub reset_champs()
txtNumber.Text = ""
hfMatricule.Value() = ""
hfDateNaisVal.Value() = ""
hfDateNais.Value() = ""
txtLastName.Text = ""
txtFirstName.Text = ""
End Sub
Private Sub rechercher_employe_infos(prenom As String, nom As String, dateNais As String)
'Dim dateParts As String() = dateNais.Split("-")
'Dim dateArrange As String = dateParts(2) + "-" + dateParts(1) + "-" + dateParts(0)
Dim strSQL As String
Dim DatS As New DataSet
Dim SQLadap As SqlClient.SqlDataAdapter
SqlCon_PAIE.ConnectionString = ConfigurationManager.ConnectionStrings("String_Connection_Paie").ConnectionString
strSQL = " SELECT MATR, upper(left(NOM,1)) + lower(right(NOM,len(NOM)-1)) AS 'NOM', upper(left(PRNOM,1)) + lower(right(PRNOM,len(PRNOM)-1)) as 'PRENOM', DATE_NAIS" & _
" FROM PAI_DOS" & _
" WHERE (NOM like '%" & nom & "') AND (PRNOM like '%" & prenom & "') AND (DATE_NAIS like (convert(datetime,'" & dateNais & "')))"
SQLadap = New SqlDataAdapter(strSQL, SqlCon_PAIE)
SQLadap.Fill(DatS, "Recherche")
If DatS.Tables("Recherche").Rows.Count > 0 Then
With DatS.Tables("Recherche").Rows(0)
'Response.Redirect("formulaire.aspx?Mat=" & Server.UrlEncode(.Item(0)))
End With
Else
LblWarning.Text = "L'employé " + prenom + " " + nom + " " + dateNais + " n'existe pas dans la base de données"
End If
SqlCon_PAIE.Dispose()
End Sub
Private Sub rechercher_employe_matricule(matricule As String)
Dim strSQL As String
Dim DatS As New DataSet
Dim SQLadap As SqlClient.SqlDataAdapter
SqlCon_PAIE.ConnectionString = ConfigurationManager.ConnectionStrings("String_Connection_Paie").ConnectionString
strSQL = " SELECT MATR" & _
" FROM PAI_DOS" & _
" WHERE (MATR like '%" & matricule & "')"
SQLadap = New SqlDataAdapter(strSQL, SqlCon_PAIE)
SQLadap.Fill(DatS, "Recherche")
If DatS.Tables("Recherche").Rows.Count > 0 Then
With DatS.Tables("Recherche").Rows(0)
'Response.Redirect("formulaire.aspx?Mat=" & Server.UrlEncode(.Item(0)))
End With
Else
LblWarning.Text = "Le matricule " + matricule + " n'existe pas dans la base de données"
End If
SqlCon_PAIE.Dispose()
End Sub
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
txtNumber.Text = txtNumber.Text
End If
End Sub
'Protected Sub txtMatricule_TextChanged(sender As Object, e As EventArgs) Handles txtMatricule.TextChanged
' txtMatricule.Text = txtMatricule.Text
' MsgBox(txtMatricule.Text)
'End Sub
End Class
还有aspx页面
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="accueil.aspx.vb" Inherits="Gamsco_Web.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Gamsco - Authentification</title>
<link rel="stylesheet" type="text/css" href="Styles\Site.css" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"> </script>
</head>
<body style="text-align:center;">
<h1 class="header">Rapport d'accident ou d'événement dangereux</h1>
<div class="page">
<div class="global">
<div class="subtitle">Veuillez saisir le matricule ou nom, prénom et date de naissance du blessé</div>
<form id="form1" runat="server" >
<table style="width: 65%; height: 250px; ">
<tr>
<td class="style5">
<asp:Label ID="lblMatricule" runat="server" Text="Matricule:"> </asp:Label>
</td>
<td class="style6">
<asp:TextBox ID="txtNumber" runat="server" Width="188px" MaxLength="9" ></asp:TextBox>
</td>
<td class="style7">
<div id="errMatr" class="err"></div>
</td>
</tr>
<tr>
<td class="style2">
</td>
<td class="style1">
<strong style="text-align: justify">ou</strong>
<asp:HiddenField ID="hfMatricule" runat="server" />
<asp:HiddenField ID="hfDateNais" runat="server" />
<asp:HiddenField ID="hfDateNaisVal" runat="server" />
</td>
</tr>
<tr>
<td class="style2">
<asp:Label ID="lblNom" runat="server" Text="Nom:"></asp:Label>
</td>
<td class="style1">
<asp:TextBox ID="txtLastName" runat="server" width="191px" ></asp:TextBox>
</td>
<td class="style7">
<div id="errNom" class="err"></div>
</td>
</tr>
<tr>
<td class="style2">
<asp:Label ID="lblPrenom" runat="server" Text="Prenom:"></asp:Label>
</td>
<td class="style1">
<asp:TextBox ID="txtFirstName" runat="server" width="191px"></asp:TextBox>
</td>
<td class="style7">
<div id="errPrenom" class="err"></div>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="lblDateNaissance" runat="server" Text="Date de naissance:"></asp:Label>
</td>
<td class="style4">
<input id="datepicker" class="calendar" placeholder="JJ-MM-AAAA" type="text"
maxlength="10" />
</td>
<td class="style7">
<div id="errDateNais" class="err"></div>
</td>
</tr>
</table>
<asp:button ID="btnSubmit" runat="server" Text="Continuer"></asp:button>
<br />
<asp:Label ID="LblWarning" runat="server" ForeColor="Red"></asp:Label>
</form>
</div>
</div>
<div class="footer">test</div>
<script src="ScriptApp/App.js" type="text/javascript"></script>
<script src="Scripts/jquery.js" type="text/javascript"></script>
<script src="Scripts/jquery.maskedinput-1.3.js" type="text/javascript"></script>
<script type="text/javascript" src="Scripts/date-fr-CA.js"></script>
</body>
</html>
【问题讨论】:
-
你也可以复制.aspx页面吗?
-
瞧! aspx 页面在这里
-
您想在
recherche*-methods 之后保留TextBox 的值吗?如果你这样做了,你应该删除提交方法末尾的reset_champs()-call。 -
没有。基本上,当单击按钮时,我正在验证我的号码是否为空,或者名字和姓氏和生日是否已填写。如果填写了第一个或第二个选项,我将调用“recherche”(英文是它的搜索;一个是数字,另一个是名字、姓氏和生日),具体取决于哪个部分已完全填写。执行 reset_champs() 以在验证后擦除隐藏字段和文本框值。即使我评论这一行,我也有同样的问题。
-
你启用了视图状态吗?
标签: asp.net vb.net textbox submit