Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Cast problem

Postades av 2004-07-14 01:56:12 - Joacim Ahlberg, i forum asp.net generellt, Tråden har 8 Kommentarer och lästs av 564 personer

Tjena,

Jag undrar varför jag i ett läge kan sätta ett värde i en TextBox på detta sätt:

<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.datum") %>'></asp:Label>


Då jag sedan inte kan sätta (pga class cast exception):

<asp:Calendar runat="server" SelectedDate='<%# DataBinder.Eval(Container, "DataItem.datum") %>'></asp:Calendar>


Men det som förbryllar mig är att följande går utmärkt:

<code>
<asp:Calendar runat="server" SelectedDate='2004-07-23'></asp:Calendar>
</code>

Borde inte det sista även ge class cast exception eftersom jag tydligt plockar ut en sträng om vi ser till det översta exemplet som inte skriker.

Jag kanske inte är riktigt vaken men kan någon förklara detta för mig, please.

/Jocke


Svara

Sv: Cast problem

Postades av 2004-07-14 08:15:30 - Johan Normén

hej,

Vad exakt för du för exception?

Det böre gå att binda så som du gör då både lables och kalenderns attribute nyttjar Bindable attributet satt till true och pekar åt båda hållen.

mvh Johan



Svara

Sv: Cast problem

Postades av 2004-07-14 10:26:19 - Andreas Håkansson

Jooahl,

Du har lite kostigt syntax till att börja med, du har placerat <b>DataItem</b> lite tokigt. Prova att använda dig av följande kod

<asp:Calendar runat="server" SelectedDate='<%# DataBinder.Eval(Container.DataItem, "datum") %>' VisibleDate='<%# DataBinder.Eval(Container.DataItem, "datum") %>'></asp:Calendar>


Hoppas det löser sig!


Svara

Sv: Cast problem

Postades av 2004-07-14 11:50:03 - Joacim Ahlberg

Grabbar,

Det är VS.Net 2003 som genererat koden åt mig när jag valt alternativet "Gör om kolumn till template".

Testade dock att ändra om syntaxen på det speciella stället som du sa utan skillnad så jag antar att vi får söka andra faktorer.

Och angående felets art:

Specified cast is not valid. 
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.InvalidCastException: Specified cast is not valid.

Source Error: 


Line 33: 
Line 34: <EditItemTemplate>
Line 35: <asp:Calendar runat="server" SelectedDate='<%# DataBinder.Eval(Container, "DataItem.datum") %>'></asp:Calendar>
Line 36: </EditItemTemplate>
Line 37: </asp:TemplateColumn>
 

Source File: c:\inetpub\wwwroot\joacim\admin_dagbok.aspx    Line: 35 

Stack Trace: 


[InvalidCastException: Specified cast is not valid.]
   ASP.admin_dagbok_aspx.__DataBind__control12(Object sender, EventArgs e) in c:\inetpub\wwwroot\joacim\admin_dagbok.aspx:35
   System.Web.UI.Control.OnDataBinding(EventArgs e)
   System.Web.UI.Control.DataBind()
   System.Web.UI.Control.DataBind()
   System.Web.UI.Control.DataBind()
   System.Web.UI.WebControls.DataGrid.CreateItem(Int32 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource)
   System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)
   System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
   System.Web.UI.WebControls.BaseDataList.DataBind()
   joacim.admin_dagbok.BindDiaryData() in c:\inetpub\wwwroot\joacim\admin_dagbok.aspx.cs:81
   joacim.admin_dagbok.editSportgren(Object source, DataGridCommandEventArgs e) in c:\inetpub\wwwroot\joacim\admin_dagbok.aspx.cs:115
   System.Web.UI.WebControls.DataGrid.OnEditCommand(DataGridCommandEventArgs e)
   System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
   System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
   System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   System.Web.UI.Page.ProcessRequestMain()



Samt ett förtydligande av aspx sidans kod:

<asp:TemplateColumn HeaderText="Datum">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.datum") %>'></asp:Label>
</ItemTemplate>

<EditItemTemplate>
<asp:Calendar runat="server" SelectedDate='<%# DataBinder.Eval(Container, "DataItem.datum") %>'></asp:Calendar>
</EditItemTemplate>
</asp:TemplateColumn>


Felet uppstår då jag trycker Edit ...!!!!

Skrik till om jag missat att dela med mig något ytterligare
mvh
Jocke


Svara

Sv: Cast problem

Postades av 2004-07-14 12:02:52 - Joacim Ahlberg

------


Svara

Sv: Cast problem

Postades av 2004-07-14 12:46:16 - Johan Normén

Har du testat att skala kalendern i icke edittemplate?
DataItem.datum <- vad är det för typ?

Mvh Johan


Svara

Sv: Cast problem

Postades av 2004-07-14 13:05:17 - Joacim Ahlberg

Det blir tyvärr ingen skillnad med vilken typ av template jag använder. Snarare så är jag som du nyfiken på om DataBinder.Eval(Container, "DataItem.datum") på något av mig outforskat sätt själv anpassar sig?? Jag menar utan editläget så verkar det vara en sträng medan den i editläget är något annat?
Datat kommer från ett dataset vilket är laddat från en xml-fil samt saknar schema. Så jag anser att den tolkar det som en sträng då jag inte angett annat.

Testat med en CheckBox med samma resultat ... Alltså så måste det handla om att DataBinder.Eval(Container, "DataItem.datum") själv anpassar sig till Fel typ? ... Allt på aspx sidan är ju text samt att datakällan ej är typad. Ide?

Det är möjligt att jag försöker komma undan enkelt här..

Men i övrigt går det utmärkt med asp:Image, asp:Label, asp:TextBox !?!

hmm
Jocke


Svara

Sv: Cast problem

Postades av 2004-07-14 14:45:43 - Joacim Ahlberg

Jag har ändrat min lösning på följande vis, så här långt, att jag i editfunktionen på en grid läser in datumet innan jag sätter editläge.
Konverterar till DateTime.
Efter detta så Försöker jag sätta SelectedDate i kalendern men här får jag ett nytt problem:

Object reference not set to an instance of an object. 
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.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 


Line 136:			Calendar cal;
Line 137:			cal = (Calendar) e.Item.FindControl("Calendar1");
Line 138:			cal.SelectedDate = date;
Line 139:			cal.DataBind();
Line 140:			
 

Source File: c:\inetpub\wwwroot\joacim\admin_dagbok.aspx.cs    Line: 138 


I övrigt så kan jag i editläget uppdatera gridden med kalenderkontrollen. Så nu är problemet krympt till att sätta datumet i denna när jag öppnar editläget. Jag har alltså skippat koden i aspx-sidan och kör enbart code-behind för att hantera kalendern.


/Jocke


Svara

Sv: Cast problem

Postades av 2004-07-14 22:38:25 - Joacim Ahlberg

Tänkte bara tala om hur det gått.

Löste det på det första sättet efter att jag fått klarhet i att Kalenderns SelectedDate kräver DateTime typen om jag skall sätta denna med:

 SelectedDate='<%# SetCalendar(DataBinder.Eval(Container, "DataItem.datum")) %>'

Medan den kräver string när jag sätter detta utan DataBinder.Eval(Container, "DataItem.datum")) såsom SelectedDate="2004-04-26" ...

Ja ja ... Eval och Late binding ... grrr

Nu blev det denna workaround till slut:
// aspx
....SelectedDate='<%# SetCalendar(DataBinder.Eval(Container, "DataItem.datum")) %>'></asp:Calendar>

// cs
		protected DateTime SetCalendar(object datum) {
		
			string[] arrDatumStr = datum.ToString().Split("-".ToCharArray());
		
			return new DateTime(Convert.ToInt32(arrDatumStr[0]),
				Convert.ToInt32(arrDatumStr[1]),
				Convert.ToInt32(arrDatumStr[2]));
		}


ha de
/Jocke


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 167
27 952
271 704
727
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies