ImageButton控件上的OnCommand事件

时间:2012-05-14 08:57:37

标签: asp.net

我遇到OnCommand事件的问题。当我将这个参数作为参数或显示时,一切都没问题,但如果我将它用作CommandArgument,我会得到InvalidCastException。在代码隐藏方法中,CommandArgument等于“”(string.Empty)

在我的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;
}

2 个答案:

答案 0 :(得分:2)

尝试使用单引号(')代替(")中的双引号CommandArgument

CommandArgument='<%# (bool)Eval("IsCandidateFavourite") %>'

答案 1 :(得分:0)

CommandArgument的类型为字符串,如此处所述 - &gt; http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.imagebutton.commandargument.aspx