Jag har nu laggt upp projektet på
http://web.telia.com/~u52217249/ASPNET
Skule vara tacksam om någon har tid att titta på det, och då också gärna gej mig råd på grejer som jag borde ha gjort annurlunda.
4 svar · 332 visningar · startad av SnowJim
Hej!
Jag håller på att bygga en sida med liknande struktur som aspsidan.
Menyn på vänster sida ska genereras utifrån hur databasen(access) ser ut, det vill säga vilka huvudtitlar och under länkar som finns.
Meny objekt
Jag har först skapat MenuTest.ascx(alltså user control), denna visar titel och om man trycker på den så visar den länkarna som tillhör titeln.
I Page_Load så skapas alla objekt så som tabeller, buttonimages och det läggs även till en del events.
Status: Jag vet att denna user control fungerar(har provat den ensam, även med länkar.
DBHandler.cs
Denna klassen hämntar alla menyer med dess länkar från databasen, för varje meny så skapar den ett objekt av MenuTest och lägger in dels ManuTitle och Länkarna.
Status: Vet att den fungerar, har kört debug och break för att se så att databasen öppnas, berarbets och stängs som den ska.
Dessa Menyer sparas ner i en ArrayList som skickas till baka till default.aspx
Meny Handler
Jag har sen byggt en MainMenuHandler.ascx som läggs till i deault(på vänster sida där menyn ska finnas) och denna får även tillgång till ArrayListen som innehåller alla Menutest objekten(Menyerna). I MainMenuHandler Page_Load så läggs helt enkelt varje Menutest i ArrayListen till i MainMenuHandler.controls.add().
Status: okänd
PROBLEMET:
När jag nu lägger till MainMenuHandler till min default.apsx och även sätter den med information hämntad från datorbasen(som jag har fyllt i med några rader) så får jag fel. JAg skule vara tacksam om ni kan hjälpa mig med detta.
Felmedelandet i Browsern är enligt följande:
Server Error in '/ProgramBase' Application.
--------------------------------------------------------------------------------
The type 'ProgramBase.Menutest' must be marked as Serializable or have a TypeConverter other than ReferenceConverter to be put in viewstate.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: The type 'ProgramBase.Menutest' must be marked as Serializable or have a TypeConverter other than ReferenceConverter to be put in viewstate.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[HttpException (0x80004005): The type 'ProgramBase.Menutest' must be marked as Serializable or have a TypeConverter other than ReferenceConverter to be put in viewstate.]
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeValue(TextWriter output, Object value)
System.Web.UI.LosFormatter.SerializeInternal(TextWriter output, Object value)
System.Web.UI.LosFormatter.Serialize(TextWriter output, Object value)
System.Web.UI.Page.OnFormRender(HtmlTextWriter writer, String formUniqueID)
System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
System.Web.UI.Control.Render(HtmlTextWriter writer)
System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
System.Web.UI.Page.ProcessRequestMain()
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573
Som ni ser så står det något om Serializable så jag har provat att göra Menutest till Serializable men detta hjälper inte.
Jag är medveten om att jag har helt glömmnt bort try and catch, jag ska så klart införa det så snart jag kan, brukar ha som vana att skriva in det direkt. Men kanske ni kan tolka felet av felmendelandet ovan? Jag förstår ialla fall inte det
MVH
Jimmy
Jag har nu laggt upp projektet på
http://web.telia.com/~u52217249/ASPNET
Skule vara tacksam om någon har tid att titta på det, och då också gärna gej mig råd på grejer som jag borde ha gjort annurlunda.
Försöker du lägga kontrollen i ViewState? Ser ut så enligt felmeddelandet.
Ta gärna en titta på koden i ovannämnda länk.
Jag använder ViewState endast till att lagra states/settings i MenuTest