Avatar billede innercitydk Nybegynder
27. november 2005 - 11:46 Der er 19 kommentarer og
1 løsning

2 User Controls på et site med hver deres "post" form

Jeg er løbet ind i et lille problem. Jeg har 2 usercontrols på samme side. Den ene er statisk i min højre spalte på sitet (Login form), den anden er en glemt password form som loades på dertilhørende glemt password side. Problemet er at begge forms benytter submit og jeg får fejl når begge er til stede samtidig, men de kan begge køre individuelt. Det er vel fordi jeg ikke kan have to post forms på samme side.

Hvordan omgår jeg dette?!

Vh Nicki
Avatar billede snepnet Nybegynder
27. november 2005 - 11:51 #1
du kan ikke have mere en én form med runat="server" på en side... det kan ikke omgås.

jeg forstår dog ikke helt hvorfor det skulle være tilfældet med mindre du har oprettet forms i dine usercontrols....

er din højre spalte en frame? - og kan du ikke lidt udvalgt kode fra dine kontroller?

mvh
Avatar billede innercitydk Nybegynder
27. november 2005 - 11:56 #2
Her virker det da jeg har undladt højre menu

http://www.aspdotnet.dk/test2.aspx

her virker det ikke da login formen i højre menu laver konflikt

http://www.aspdotnet.dk/login.aspx

Formen ligger i usercontrol
Avatar billede jokkejensen Novice
27. november 2005 - 12:18 #3
man bruger ikke post og get i asp.net, kun hvis du skal kommunikere med ældre asp/php forms...
Avatar billede innercitydk Nybegynder
27. november 2005 - 12:24 #4
Jeg bliver vist nød til at droppe højre spalte på undersiderne ser det ud til..
Avatar billede innercitydk Nybegynder
27. november 2005 - 12:24 #5
>>Jokkejensen problemet er runat optræder to gange
Avatar billede snepnet Nybegynder
27. november 2005 - 12:25 #6
du må ikke have en serverform i din usercontrol, men det forhindrer dig ingenlunde i at håndtere events i den etc.
mvh
Avatar billede snepnet Nybegynder
27. november 2005 - 12:25 #7
hvorfor har du en sådan (serverform i din usercontrol) ?
mvh
Avatar billede innercitydk Nybegynder
27. november 2005 - 12:56 #8
Jeg er ret ny til asp.net lærer lidt hen af vejen :)Det er ikke optimalt men når det er selvlært er den den eneste måde hehe..

Kan jeg godt have flere forms på siden hvis jeg lavet det med events kald i usercontrols. Giver det ikke problemer hvis jeg skal have en form 2 forskellige steder
Avatar billede snepnet Nybegynder
27. november 2005 - 13:01 #9
helt fint :o)

nej du kan aldrig have mere en 1 serverform - uanset hvad du gør, men det betyder nu ikke så meget - du skal nok komme igennem det alligevel.

kan du ikke vise mig koden til din usercontrol?

mvh
Avatar billede innercitydk Nybegynder
27. november 2005 - 13:06 #10
Glemt password:

<%@ Control Language="c#" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web.Mail" %>
<div align="left">
<table width="300"  border="0" cellpadding="10" class="glemt">
  <tr>
    <td>
<script language="c#" runat="server">
void Button1_Click(object sender, EventArgs e)
{
    clearfejl();
    if(TextBox1.Text=="")
    {
        fejlbrugernavn.Text="Skal udfyldes";
    }
   
    if(TextBox1.Text!="")
    {
    clearfejl();
    string resultat;
    resultat="";
    OleDbConnection myConn;
    string strDSN=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=";
    strDSN+=Server.MapPath("Sti til db");
    myConn = new OleDbConnection(strDSN);

    OleDbDataAdapter myAdapter = new OleDbDataAdapter("select password from brugere where email='"+TextBox1.Text+"'", myConn );
    DataSet ds = new DataSet();
    myAdapter.Fill (ds, "brugere" );
    foreach(DataRow dr in ds.Tables[0].Rows)
    {   
        resultat = dr["password"].ToString();               
    }   
   
    if(resultat=="")
    {
        clearfelter();
        clearfejl();
        fejlbrugernavn.Text="Eksisterer ikke!";
    }
    else
    {
   
        MailMessage mail = new MailMessage();
        mail.To = ""+TextBox1.Text;
        mail.From = "admin@aspdotnet.dk";
        mail.Subject = "Password til aspdotnet.dk";
        mail.Body = "Dit Password er: "+resultat; //"this is my test email body."
        SmtpMail.SmtpServer = "localhost";
        try
        {
        SmtpMail.Send( mail );
        clearfejl();
        TextBox1.Text="";
        fejlbrugernavn.Text="Gennemført!";
        Button1.Enabled=false;
        }
        catch
        {
            fejlbrugernavn.Text="Kan ikke sende!";
        }
    }
    }
}

public void clearfelter()
{
        TextBox1.Text="";
}
public void clearfejl()
{
        fejlbrugernavn.Text="";
}   
</script>
<form id="Form1" method="post" runat="server">
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:Label id="Label1" runat="server" Height="27px" ForeColor="#FFFFFF">Eemail:</asp:Label><br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:TextBox id="TextBox1" runat="server" Width="200px"></asp:TextBox><br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <asp:Label ID="fejlbrugernavn" runat="server" ForeColor="#FF0000" Font-Size="7" />
            <br>
           
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:Button id="Button1" OnClick="Button1_Click"  runat="server" Text="Send nyt password" Font-Size="8"></asp:Button>
            <br>
               
        </form>
      </td>
  </tr>
</table>
</div>



Login:
<%@ Control Language="c#" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>
<div align="left">
<table width="150"  border="0" cellpadding="10" class="mods">
  <tr>
    <td>
<script language="c#" runat="server">
void Page_Load(object sender, EventArgs e)
{
if(Session["bruger"]!=null)
    {
        Label3.Text=Session["bruger"].ToString()+" Online";
    }
}
void Button1_Click(object sender, EventArgs e)
{
    clearfejl();
    if(TextBox1.Text=="")
    {
        fejlbrugernavn.Text="Skal udfyldes";
    }
    if(TextBox2.Text=="")
    {
        fejlpassword.Text="Skal udfyldes";
    }
    if(TextBox1.Text!="" & TextBox2.Text!="")
    {
    clearfejl();
   
    string resultat;
    resultat="";
    OleDbConnection myConn;
            string strDSN=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=";
            strDSN+=Server.MapPath("Sti til db");
            myConn = new OleDbConnection(strDSN);

            OleDbDataAdapter myAdapter = new OleDbDataAdapter("select password from brugere where email='"+TextBox1.Text+"'", myConn );
            DataSet ds = new DataSet();
            myAdapter.Fill (ds, "brugere" );
            foreach(DataRow dr in ds.Tables[0].Rows)
            {   
                resultat = dr["password"].ToString();               
            }   
   
    if(resultat==TextBox2.Text)
    {
       
        Session["bruger"] = TextBox1.Text;
        Label3.Text=Session["bruger"].ToString()+" Online";
        clearfelter();
        clearfejl();
    }
    else if(resultat=="")
    {
        clearfelter();
        clearfejl();
        fejlbrugernavn.Text="Eksisterer ikke!";
    }
    else
    {
        clearfejl();
        TextBox2.Text="";
        fejlpassword.Text="Fejl i password!";       
    }
    }
}
public void logud(object sender, EventArgs e)
    {
        clearfelter();
        clearfejl();
        if(Session["bruger"] != null)
        {
            Session.Abandon();
            Response.Redirect("default.aspx?id=a0_0");
        }
        else
        {
            Label3.Text="Du er ikke logget ind!";
        }
    }
public void clearfelter()
{
        TextBox1.Text="";
        TextBox2.Text="";
}
public void clearfejl()
{
        fejlbrugernavn.Text="";
        fejlpassword.Text="";
}   
</script>
<form id="Form1" method="post" runat="server">

            <br>&nbsp;&nbsp;&nbsp;<asp:Label id="Label1" runat="server" Height="27px">Brugernavn(email):</asp:Label><br>
                &nbsp;&nbsp;&nbsp;<asp:TextBox id="TextBox1" runat="server" Width="104px"></asp:TextBox><br>
                &nbsp;&nbsp;&nbsp;<asp:Label ID="fejlbrugernavn" runat="server" ForeColor="#FF0000" Font-Size="7" /><br>
           
            &nbsp;&nbsp;&nbsp;<asp:Label id="Label2" runat="server" Height="27px">Password:</asp:Label><br>
            &nbsp;&nbsp;&nbsp;<asp:TextBox id="TextBox2" TextMode="Password" runat="server" Width="104px"></asp:TextBox><br>
                &nbsp;&nbsp;&nbsp;<asp:Label ID="fejlpassword" runat="server" ForeColor="#FF0000" Font-Size="7" /><br>
           
            &nbsp;&nbsp;&nbsp;<asp:Button id="Button1" OnClick="Button1_Click"  runat="server" Text="Log ind" Font-Size="8"></asp:Button>
            <asp:Button runat="server" id="LogUd" Text="Log ud" Font-Size="8" OnClick="logud"/><br>
                &nbsp;&nbsp;&nbsp;&nbsp;<asp:Label id="Label3" runat="server" Height="27px"><a href="login.aspx?id=a0_1" class="tekstsmall">Glemt password?</a></asp:Label>
        </form>
      </td>
  </tr>
</table>
</div>
Avatar billede snepnet Nybegynder
27. november 2005 - 13:08 #11
bare slet formen i din usercontrol
mvh
Avatar billede innercitydk Nybegynder
27. november 2005 - 13:09 #12
jeg tror bare jeg dropper højre menu på undersiderne det ser da også ok ud..

Jeg håber du har lyst til at komme ind og skrive et par artikler når siden er færdig Snepnet. Du har styr på tingene. Mange af dine svar rundt omkring herinde har hjulpet mig meget!

vh Nicki

//Smid lige et svar.. Jeg blev jo lidt klogere :)
Avatar billede innercitydk Nybegynder
27. november 2005 - 13:09 #13
Avatar billede snepnet Nybegynder
27. november 2005 - 13:16 #14
du behøver såmænd ikke droppe den .... der er ikke noget bøvl i at få det til at funge.
hvis du lægger din messengerkonto her kan vi skrive lidt der, hvis det skulle være.
mvh
(tak for de pæne ord... jeg skal nok hoppe ind på dit site :o)
Avatar billede innercitydk Nybegynder
27. november 2005 - 13:30 #15
min msn er innercitydk@hotmail.com
Avatar billede snepnet Nybegynder
27. november 2005 - 13:41 #16
fino - så kan vi skrive der
(har godt nok lige fået gæster)
mvh
Avatar billede burningice Nybegynder
28. november 2005 - 15:53 #17
snepnet>> jeg troede du vidste bedre end til at påstå at det er umuligt at benytte to eller flere forme :)

http://aspalliance.com/articleViewer.aspx?aId=132&pId=
Avatar billede snepnet Nybegynder
28. november 2005 - 16:15 #18
:o) well.... svaret var baseret på et spørgsmål om hvorvidt man kunne komme uden om det ved at pille ved sine usercontrols, men jeg kan godt se at det var lidt overformuleret.
mvh
Avatar billede innercitydk Nybegynder
28. november 2005 - 16:18 #19
Jeg har lige hentet projektet og vil til at pille lidt i det. I kan hente det her Open Source http://sourceforge.net/project/showfiles.php?group_id=107310&package_id=115865&release_id=265429

Vh
Avatar billede innercitydk Nybegynder
28. november 2005 - 16:19 #20
Smider lige en 30'er til dig Burningice
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester