Submit forms doesn't work correct

Status
Niet open voor verdere reacties.

VBMichael

Gebruiker
Lid geworden
16 jan 2010
Berichten
32
Ik zit met een volgend probleem :

in mijn project ben ik bezig met een formulier waarin automatisch het land/postcode/city en dergelijke worden ingevuld aan de hand van dropboxen. bij het selecteren van bijvoorbeeld Belgium zal in de postcode list alle postcodes getoond worden van belgium en bij selecteren van een postcode de bijhorende cities. Daarnaast wordt ook per land de telcode ( voor telefoonnummers ) en landcode ( voor btw nummers ) automatisch ingevuld in de voorziene textvelden.

Bv. :

Belgium 9870 Olsene

Telefoon : +32
BTW : BE

Als ik nu mijn telefoonnummer verder invul en btw nummer en doe een submit voor de eerste keer dan komen de waarden in de tekstvelden terug op hun default waarde ( zoals hierboven vermeld ) , als ik het dan een tweede keer uitvoer dan lukt het wel... Hoe komt dit ?
 
aspx pagina :

Code:
<table class="userdata" cellpadding="2" cellspacing="1">
        <tr><td colspan="2"><center><font color="Red" size="6">*** We have spotted you on this IP-adres : <asp:Label runat="server" ID="lblIpAdresRemote" Text="" /></font></center></td></tr>
        <tr class="titel"><td colspan="2">Gebruikersinstellingen:</td></tr>
        <tr><td>Contactpersoon: <font color="Red">*</font></td><td><asp:TextBox CssClass="inputCss" ID="txtContactpersoon" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: Firstname Lastname</font><br /><asp:Label ID="msgName" runat="server" /></td></tr>
        <tr><td>Land: <font color="Red">*</font></td><td><asp:ListBox ID="lstLand" CssClass="inputCss" AutoPostBack="true" OnSelectedIndexChanged="lstLand_Changed" runat="server" Rows="1" /><asp:Label ID="msgLand" runat="server" /></td></tr>
        
        <tr>
            <td>Postcode: <font color="Red">*</font></td>
            <td>
                 <asp:Panel runat="server" ID="pnlPostcodeList"><asp:ListBox ID="lstPostcode" CssClass="inputCss" AutoPostBack="true" OnSelectedIndexChanged="lstPostcode_Changed" runat="server" Rows="1" /></asp:Panel>
                <asp:Panel runat="server" ID="pnlPostcodeText"><asp:TextBox ID="txtPostcode" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: 0000</font><br /><asp:Label ID="msgPostcodeText" runat="server" /></asp:Panel>
            </td>
        </tr>
        
        <tr>
            <td>Stad: <font color="Red">*</font></td>
            <td>
                <asp:Panel runat="server" ID="pnlStadList"><asp:ListBox ID="lstStad" CssClass="inputCss" runat="server" Rows="1" /></asp:Panel>
                <asp:Panel runat="server" ID="pnlStadText"><asp:TextBox ID="txtStad" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: Cityname</font><br /><asp:Label ID="msgStadText" runat="server" /></asp:Panel>
            </td>
        </tr>

        <tr><td><asp:Panel runat="server" ID="pnlOtherAddress"><em><b>If you can't find your postcode/zipcode and/or city click the button 'Other address' so that you can fill your postcode and city manually!</b></em></td><td><asp:Button ID="btnOtherAddress" runat="server" OnClick="btnOtherAddress_Click" Text="Other address" /></asp:Panel></td></tr>
        
        <tr><td class="labelText">Adres: <font color="Red">*</font></td><td><asp:TextBox ID="txtAdres" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: Streetname Streetnumber ( Avenue 23 )</font><br /><asp:Label ID="msgAdres" runat="server" /></td></tr>
        <tr><td>Telefoon: <font color="Red">*</font></td><td><asp:TextBox ID="txtTelefoon" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: +3291234567</font><br /><asp:Label ID="msgTelefoon" runat="server" /></td></tr>
        <tr><td>Fax:</td><td><asp:TextBox ID="txtFax" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: +3291234567</font><br /><asp:Label ID="msgFax" runat="server" /></td></tr>
        <tr><td>GSM: <font color="Red">*</font></td><td><asp:TextBox ID="txtGSM" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: +32474123456</font><br /><asp:Label ID="msgGSM" runat="server" /></td></tr>
        <tr><td>Email: <font color="Red">*</font></td><td><asp:TextBox ID="txtEmail" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: example@hotmail.com</font><br /><asp:Label ID="msgEmail" runat="server" /></td></tr>
        <tr><td>Repeat email: <font color="Red">*</font></td><td><asp:TextBox ID="txtRepeatEmail" CssClass="inputCss" runat="server"></asp:TextBox><br /><asp:Label ID="msgRepeatEmail" runat="server" /></td></tr>

        <tr class="titel"><td colspan="2">Bedrijfsinstellingen:</td></tr>

        <tr><td colspan="2"><asp:CheckBox ID="chkIsCompany" Checked="true" Text="Bedrijf?" runat="server" onclick="javascript:Check(this);" /></td></tr>

        <tr id="firmaSettings"><td>Bedrijfsnaam: <font color="Red">*</font></td><td><asp:TextBox ID="txtBedrijfsnaam" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: Companyname</font><br /><asp:Label ID="msgBedrijfsnaam" runat="server" /></td></tr>
        <tr id="vatSettings"><td>Ondernemingsnummer:<br />(Europe only)</td><td><asp:TextBox ID="txtOndernemingsnummer" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: BE0123456789</font><br /><asp:Label ID="msgOndernemingsnummer" runat="server" /><br /><a href="http://www.dsmbelgium.com/VATController/VATController.html">Check VAT</a></td></tr>
        <tr id="webSettings"><td>Website:</td><td><asp:TextBox ID="txtWebsite" CssClass="inputCss" runat="server"></asp:TextBox><font color="gray" style="font-style: italic;">Example: http://www.example.be</font><br /><asp:Label ID="msgWebsite" runat="server" /></td></tr>
    
        <tr><td><asp:Button ID="btnNextStep" OnClick="btnNextStep_Click" runat="server" Text="Next" /></td></tr>
    </table>

Code behind :

Code:
private Landen l = new Landen();
        private Steden s = new Steden();
        private List<string> sList = new List<string>();
        private List<Steden> sListStad = new List<Steden>();
        private List<Landen> sListLand = new List<Landen>();
        private Gebruikers g = new Gebruikers();

        public _Default() {
            this.PreRender += delegate
            {
                if (!IsPostBack)
                {
                    pnlStep1.Visible = true;
                    pnlStep2.Visible = false;
                    pnlStep3.Visible = false;

                    sListLand = l.GetLanden(new MySql.Data.MySqlClient.MySqlConnection("Server=localhost;Database=carxptest;Uid=root;"));

                    int landid = 1;

                    hiddenFieldLandid.Text = landid.ToString();

                    foreach (Landen ll in sListLand)
                    {
                        ListItem c = new ListItem();
                        c.Value = ll.id.ToString();
                        c.Text = ll.Naam;
                        this.lstLand.Items.Add(c);
                    }

                    if (s.CheckPostExists(new MySql.Data.MySqlClient.MySqlConnection("Server=localhost;Database=carxptest;Uid=root;"), landid) > 0)
                    {
                        pnlPostcodeList.Visible = true;
                        pnlPostcodeText.Visible = false;
                        pnlStadList.Visible = true;
                        pnlStadText.Visible = false;

                        pnlOtherAddress.Visible = true;
                    }
                    else
                    {
                        pnlPostcodeList.Visible = false;
                        pnlPostcodeText.Visible = true;
                        pnlStadList.Visible = false;
                        pnlStadText.Visible = true;

                        pnlOtherAddress.Visible = false;
                    }

                    Landen get_ = l.GetInfo(new MySql.Data.MySqlClient.MySqlConnection("Server=localhost;Database=carxptest;Uid=root;"), landid);
                    txtTelefoon.Text = get_.TelCode.ToString();
                    txtFax.Text = get_.TelCode.ToString();
                    txtGSM.Text = get_.TelCode.ToString();
                    txtOndernemingsnummer.Text = get_.Code.ToString();

                    txtWebsite.Text = "http://";
                }
            };

            this.Load += new EventHandler(Page_Load);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            string ipadres = Request.ServerVariables["REMOTE_ADDR"].ToString();
            this.lblIpAdresRemote.Text = ipadres + " ! ***";
        }

        protected void btnNextStep_Click(object sender, EventArgs e)
        {
            if (ValidateUser())
            {
                pnlStep1.Visible = false;
                pnlStep2.Visible = true;
                pnlStep3.Visible = false;
            }
        }

Als ik een Console.WriteLine(txtTelefoon.Text); plaats in de btnNextStep_Click zie ik bij het invullen ook alleen maar de eerste keer direct '+32' zonder al de rest...
De tweede keer zit alles er dan wel in...
 
Laatst bewerkt:
iemand een idee ? want geraak der niet aan uit en tvraagt veel te veel tijd.... :confused:


edit:

gevonden!!!! Na het clicken van de next button werd eerst de load uitgevoerd dan de lstLand_Changed ( waardoor de waarden terug op de fault gezet worden ) en dan pas de next methode van de button.

oplossing :

Session["step"] = 0 dan per keer in de load sessie verhogen bij 1 doet hij normaal de lstLand_changed dus die stap overslaan.

Toch niet opgelost:

nu doorloopt hij nooit meer mijn lstLand_Changed functie :(
 
Laatst bewerkt:
Heb het opgelost nu

zou je de oplossing nog willen posten?
je kan ook gebruik maken van

Code:
if(!postback)
(btw dit had ik in c# gebriukt kweet niet of dit ook hetzelfde zo is in visual b.)

Byee VRC
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan