Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP.NET 3.x > Språk - C#

varför funkar det inte att jämföra med en Eval("XXX") ?

nabbiii
nabbiii

Gradering

#19241

hejsan,jag har lite problem med att jämföra eval med int

<%# Eval("type") %> get 1

så varför funkar det inte skriva

<%if (int.Parse(Eval("type").ToString()) == 1) {
                                  Response.Write("(F)");
                              }  %>

 

Databindningsmetoder som Eval(), XPath() och Bind() kan endast användas i en databunden kontrolls kontext.

Beskrivning: Ett undantag som inte kunde hanteras uppstod när den aktuella webbegäran kördes. Mer information om felet och var i koden det uppstod finns i stackspårningen.

Undantagsinformation: System.InvalidOperationException: Databindningsmetoder som Eval(), XPath() och Bind() kan endast användas i en databunden kontrolls kontext.

Källfel:

Rad 94:                             <asp:Label ID="brand" runat="server" Text='<%# Eval("brand") %>' ForeColor="Black"></asp:Label>
Rad 95: <asp:Label ID="model" runat="server" Text='<%# Eval("model") %>' ForeColor="Black"></asp:Label>
Rad 96: <%if (int.Parse(Eval("type").ToString()) == 1) {
Rad 97: Response.Write("(F)");
Rad 98: } %>

ID: #19241 | Skapades: 2010-01-28 23:24:24 | Tråden har 1 svar och har lästs 383 gånger.

voigtan
voigtan

Gradering

#19243

Som många (om du googla på ditt problem) säger: Flytta logiken i din codebehind, detta ser mer ut som klassisk ASP än vad det gör som .NET kod:

http://www.sitepoint.com/forums/sho...ad.php?t=138831 kan hjälpa dig

Sen känns det extremt onödigt att du kör en asp:label för brand och model, bara för att fylla ut en text (och köra inline-style är något jag inte skulle rekommendera, använd CSS!) Använder du brand, model i någon codebehind? Annars plocka bort det och använd en vanlig <span>

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19243 | Skapades: 2010-01-29 07:12:28
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy