Я думал, Eval("JobTitle")
преобразует возвращаемое значение в тип String
, но это не так, поскольку значение (возвращаемое Eval("JobTitle")
), переданное в GetSelectedJobTitle()
, имело тип Object
, а не String
, что вызвало ошибку «невозможно преобразовать объект в строку».
<EditItemTemplate>
<asp:DropDownList ID="EditJob" runat="server"
SelectedIndex='<%# GetSelectedJobTitle(Eval("JobTitle")) %>'
DataSource=’<%# Titles %>’>
</asp:DropDownList>
</EditItemTemplate>
public int GetSelectedJobTitle(string title)
{
...
}
public string[] Titles
{
...
}
a) Так когда же произойдет преобразование (из Object
в String
) значения, возвращенного из Eval("JobTitle")
)?
b) И если Eval
не выполняет преобразование, какой метод делает?
1018 * спасибо *
EDIT:
Я предполагаю, что в нашем примере GetSelectedJobTitle () вызывается до того, как Asp.Net оценивает (и преобразует его в строку) выражение, содержащееся в <% #%>?