2011-09-27 9 views
7

W mojej tabeli programu SQL Server znajduje się kolumna slno. (tak, zawiera kropkę), która działa poprawnie w SQL Server. Jednak <%#Eval("slno.")%> daje błąd:Jak używać Eval() z nazwą kolumny, która zawiera kropkę (.)?

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'slno'.

jaki sposób można to rozwiązać? Nie mogę zmienić nazwy kolumny w bazie danych: otrzymuję dane z stored procedure, więc nie mogę tego zmienić.

<ItemTemplate> <%#Eval("slno.") %> </ItemTemplate> 
+3

tylko zgadnij. czy próbowałeś go zamknąć w nawiasach []? – SaQiB

+0

Był dokładny duplikat tego pytania około 5 minut temu ... – mellamokb

+0

@SaQiB: Tak, wypróbowałem to 'Eval ([" slno. "])' I 'Eval (" [slno. "") 'Ale żaden z oni pracują. – jams

Odpowiedz

7

zastosowanie

<%# ((DataRowView)Container.DataItem)["slno."] %> 

Alternatywnie można użyć

<%# DataBinder.Eval (Container.DataItem, "slno.") %> 

Dla porównania MSDN patrz http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx

EDIT - Inną opcją:

<%# DataBinder.GetPropertyValue(Container.DataItem, "slno.") %> 

EDIT 2 - jak za komentarze:

AFAIK Eval obsługuje ciąg jako wyraz, który ocenia stosując pewne zasady - zasady te mają specjalnego traktowania dla kropki ...

GetPropertyValue OTOH nie stosuje tych zasad (co oznacza, że ​​NIE jest pełnym zamiennikiem dla Eval AFAIK), dzięki czemu może obsługiwać przypadki, w których obsługa kropek o numerze Eval prowadzi do problemów (jak w tym przypadku).

+0

Próbowałem, ale żaden z nich nie działa SAD :( – jams

+1

następnie proszę pokazać dokładną deklarację procedury przechowywanej, która zwraca tę kolumnę ... – Yahia

+0

Teraz próbuję użyć prostego 'wybierz * z tbPRecord' ale nadal otrzymuję błąd. – jams

-2

Nie używaj DataBinder.eval(); eval() nie może odczytać pola po kropce (.).

Zamiast używać DataBinder.GetPropertyValue()

0

I Used DataBinder.GetPropertyValue(), jak następuje:

DataBinder.GetPropertyValue(Container.DataItem, "Name of my Fields with(Parentheses)") 

i pracował jak czar na ASP.NET VB Project.

Powiązane problemy