Jag försöker göra en UserControl som fyller en div när man trycker på en knapp. Dubbelkoll: Orginalsidan är bara en mall i detta fallet. Där finns inga FORM-taggar. Jag är säker på att det inte finns två, och jag får inga kompileringsfel. Men jag ska testa och flytta FORM-taggarna till sidan som har UserControlen. Nä tvärt om skall det vara - huvudsidan skall ha form-taggar, inte usercontrollerna. Okej, nu har jag det så. Under artiklar/filmer har jag gjort en film som visar hur man gör en usercontrol. Kasta ett öga på denna och se om det kan ge dig någonting. Kollade på den, och testade att ändra från Private till Public på värdena som du gjorde senare i filmen. Jag har fortfarande samma problem. Jag kan sätta värden till vad som helst vid Page_Load, men inte vid en ClickEvent på en knapp. Kan du visa oss lite kod så får vi se om vi kan reda ut detta problem? Givetvis. Gör jag det får jag följande felmeddelande: Det verkar som du använder fel kontroller, dvs html-kontrollerna Det hjälpte när jag gjorde alla förändringar du sade.Problem med UserControls
Diven är RUNAT="server" och har en ID-attribut. HTML-formen har en METHOD="post", men när jag skriver kod i klickfunktionen på knappen så händer det ingenting! Detta har fungerat när jag inte använder UserControls, men nu verkar någonting vara fel.
Någon som har varit med om detta?Sv: Problem med UserControls
Du skall inte ha någon form-tagg i din usercontrol. Form-taggen skall finnas på originalsidan istället. Om du har form-tagg på båda sidorna kommer du att få ett fel vid kompileringen.Sv: Problem med UserControls
Andra reflektioner?Sv: Problem med UserControls
Sv: Problem med UserControls
Mitt problem är kvar. Några andra idéer?Sv: Problem med UserControls
http://www.pellesoft.se/area/articles/page.aspx?id=22Sv: Problem med UserControls
Sv: Problem med UserControls
Sv: Problem med UserControls
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="index.aspx.vb" Inherits="gourmet.index" %>
<%@ Register TagPrefix="Menu" TagName="PlaceHere" Src="ucs/menu.ascx"%>
<%@ Register TagPrefix="Login" TagName="PlaceHere" Src="ucs/login.ascx"%>
<%@ Register TagPrefix="Top" TagName="PlaceHere" Src="ucs/top.ascx"%>
<HTML>
<HEAD>
<LINK REL="stylesheet" HREF="Styles.css">
</HEAD>
<FORM METHOD="post">
<BODY STYLE="margin:0px 0px 0px 0px;" BGCOLOR="#FFFFFF">
<Top:PlaceHere RUNAT="server" />
<%If Session("Login") = "" Then%>
<Login:PlaceHere RUNAT="server" />
<%Else%>
<!--Övriga sidan här-->
<%End If%>
</BODY>
</FORM>
</HTML>
Där är själva huvudsidan, här kommer koden till login.ascx:
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="login.ascx.vb" Inherits="gourmet.login" %>
<STYLE TYPE="text/css">
div.menu
{
position: absolute;
background-color: #88DE75;
width: 730px;
height: 23px;
padding: 2px 3px 2px 3px;
border: none 0px;
top:60;
left:0;
}
</STYLE>
<DIV CLASS="menu" ID="div_Menu"><BR></DIV>
<BR><BR><BR><BR><BR><BR><BR><BR>
<TABLE WIDTH="600">
<TR>
<TD COLSPAN="2">
Lite infotext...
</TD>
</TR>
<TR>
<TD WIDTH="15%">
<B>Lösenord:</B>
</TD>
<TD>
<INPUT ID="txtPassword" TYPE="password" STYLE="FONT-WEIGHT:normal;FONT-SIZE:10px;WIDTH:80px;LINE-HEIGHT:normal;FONT-STYLE:normal;FONT-VARIANT:normal" RUNAT="server">
</TD>
</TR>
<TR>
<TD></TD>
<TD>
<INPUT ID="subLogin" TYPE="submit" VALUE="Logga in" STYLE="FONT-WEIGHT:normal;FONT-SIZE:10px;WIDTH:80px;LINE-HEIGHT:normal;FONT-STYLE:normal;FONT-VARIANT:normal" RUNAT="server">
</TD>
</TR>
<TR>
<TD COLSPAN="2">
<DIV ID="divError" RUNAT="server" />
</TD>
</TR>
</TABLE>
<BR>
<BR>
Det är divError jag försöker skriva till. Jag har testat med ASP:Label också.
Och här kommer codebehind-filen:
Imports System.Data.OleDb
Public Class login
Inherits System.Web.UI.UserControl
Public WithEvents txtPassword As System.Web.UI.HtmlControls.HtmlInputText
Public WithEvents subLogin As System.Web.UI.HtmlControls.HtmlInputButton
Public WithEvents divError As System.Web.UI.HtmlControls.HtmlGenericControl
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
divError.InnerHtml = "heja"
End Sub
Private Sub subLogin_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles subLogin.ServerClick
divError.InnerHtml = "tjos"
End Sub
End Class
Ändrade från Protected till Private, och sedan från Private till Public, men det hjälpte inte.
divError får koden "heja" när sidan laddas, men inte "tjos" när jag trycker på knappen.
Tack för all hjälp så långt!
Sv: Problem med UserControls
Parser Error Message: 'gourmet.login' is not a valid base class because it does not extend class 'System.Web.UI.UserControl'.
Kanske behöver jag ändra något mer om jag ändrar detta?Sv: Problem med UserControls
Testa då att ändra Handles subLogin.ServerClick till Handles subLogin.Click samt Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Det är inte så att du tar vanlig kod, högerklickar på dom och säger att dom skall vara serverkontroller? I så fall, använd .net's riktiga kontroller på en gång.Sv: Problem med UserControls
Jag tror dock att felet berodde på att jag inte hade med RUNAT="server" på <FORM>-taggen.
Tack för all hjälp, nu har PelleSoft ännu ett löst problem att lägga till listan!