1

まず、私はフランス語で開発しているため、一部の用語はフランス語ですが、要素名は英語であることに注意してください。ご不明な点がございましたら、お気軽にお問い合わせください。

vb.netを使用してASPWebページで作業しており、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&#39;accident ou d&#39;é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>
4

1 に答える 1

0

良いデバッグでこれを理解できると思います。

私は間違いなくjavascriptを削除することから始めます。そのクライアント側のコードは、ポストバックされる前にあなたの価値に絶対的に影響を与える可能性があります。

すべてをシンプルにし、page.loadコードを取り出してください、それはあなたにとって何の役にも立ちません。

btnSubmit.clickのifコードをコメントアウトし、テストしているだけなので、値が今のところそこにあるかのように動作します。

全体的に、値がそこにない理由がわかりません。

于 2013-01-24T21:14:36.510 に答える