2012-05-14 3 views
0

У меня проблема с событием OnCommand. Когда я даю этот параметр как аргумент или показываю, все в порядке, но если я использовал его как CommandArgument, я получаю InvalidCastException. В код позади метода CommandArgument равно "" (string.Empty)Событие OnCommand в элементе управления ImageButton

В моем файле ASPX у меня есть этот код ниже:

<%# (bool)Eval("IsCandidateFavourite") %> //just display value 
<asp:ImageButton id="ImageButton1" runat="server" 
    CommandArgument="<%# (bool)Eval("IsCandidateFavourite") %>" 
    OnCommand="imBtnFavorite_Command" 
    ImageUrl='<%# GetIsFavoriteImageUrl((bool)(Eval("IsCandidateFavourite"))) %>'/> 

В моем коде позади файла У меня есть этот

public string GetIsCandidateFavoriteImageUrl(bool isNowFavorite) 
{ 
    if (isNowFavorite) 
    { 
     return @"~/_images/icon_grid_fav.gif"; 
    } 
    return @"~/_images/icon_grid_unfav.gif"; 
} 

protected void imBtnFavorite_Command(object sender, CommandEventArgs e) 
{ 
    bool isFavorite =(bool) e.CommandArgument; 
} 
+0

Это потому, что тип данных 'e.CommandArgument' не является логическим. Таким образом, вы не можете наложить его на '(bool) e.CommandArgument' –

ответ

2

Попробуйте использовать одиночные кавычки (') вместо Double Quotes (") i n CommandArgument

CommandArgument='<%# (bool)Eval("IsCandidateFavourite") %>' 
Смежные вопросы