Toon posts:

[ASP.NET] gebruiker server forms *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo ik maak gebruik van een site die geen frames gebruikt.
Iedere pagina heeft een header waar je eventueel direct kunt inloggen.

Nu wil ik deze login niet op iedere pagina afhandelen en heb hiervoor een usercontrol gemaakt.

Echter bij de btn_click kan ik niet de waarden uitlezen met mijn findcontrol methode omdat zij een niveau hoger liggen, wat is een goede methode om dit toch op te lossen.

Ik wil niet op iedere pagina een afhandeling voor de login.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

En ASP.Net maar er bij gefrot, iets duidelijker dan .Net alleen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Begrijp ik nu goed dat je die header informatie wil laten versturen naar je usercontrol?

Zo ja, dan kun je toch van de header een usercontrol maken die verantwoordelijk is voor het tonen van de inlogvelden, het inloggen en indien al ingelogd de uitlogknop?

Verwijderd

Topicstarter
bigbeng schreef op 06 juli 2004 @ 17:06:
Zo ja, dan kun je toch van de header een usercontrol maken die verantwoordelijk is voor het tonen van de inlogvelden, het inloggen en indien al ingelogd de uitlogknop?
de kruk zit hem in het volgende:
de usercontrol is een form nodig, dit form staat op de pagina die het usercontrol include.

als je op de button klikt wordt een proces in de code behind van de usercontrol geactiveerd, echter deze heeft niet beschikking over de input velden.
de input velden maak je dan wel aan op de usercontrol, maar ze worden geplaatst binnen de form van de bovenliggende pagina en zijn daarom niet bereikbaar binnen de usercontrol (of hier ligt mijn fout, ik kan de elementen wel vinden met findcontrol, maar vervolgens niet uitlezen.).

code:
1
2
3
4
5
6
Control c = new Control();
c.FindControl("email");
if (c != null)
{
  email = ((System.Web.UI.WebControls.TextBox)c).Text;
}

je mag maar 1 form met runat server gebruiken op je pagina, dus hoe krijg je dit dan toch voor elkaar

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 18-12-2025
Verwijderd schreef op 07 juli 2004 @ 10:13:
als je op de button klikt wordt een proces in de code behind van de usercontrol geactiveerd, echter deze heeft niet beschikking over de input velden.
Krijg je een foutmelding als je dat doet? Ik heb dezelfde situatie: in een usercontrol voor de header een textbox en imagebutton (zoekfunctie) en deze worden gewoon in de usercontrol afgehandeld.

Verwijderd

Topicstarter
stukje van de gewone pagina
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ Register TagPrefix="uc1" TagName="topmenu" Src="../usercontrols/topmenu.ascx" %>

<body>
    <form id="frm" runat="server">
                  <table>
                   <tr>
       <td colSpan="3"><uc1:topmenu id="Topmenu1" runat="server"></uc1:topmenu></td>
      </tr>
<tr><td>rest van de pagina</td></tr>
</table>


                </form>

</body>


dit is verkort mijn usercontrol.aspx.cs die aan de topmenucontent wordt geadd

topmenucontent.controls.add(loginHeader())

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class topmenu : System.Web.UI.UserControl
{
}

public Table loginHeader()
{
   blabla
    txt = new TextBox();
    txt.ID = "email";
    txt.Text = "emailadres";
    txt.CssClass = "inplogin";

    Button btn = new Button();
    btn.Click += new EventHandler(btnLogin);
    btn.Text = "opslaan";

      en verder..
}



code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void btnLogin(object sender, EventArgs e)
{
    String email = "";
    String password = "";

    Control c = new Control();

    c.FindControl("email");
    if (c != null)
    {
        email = ((System.Web.UI.WebControls.TextBox)c).Text;
    }

                blablabla
Pagina: 1