日期:2014-05-20  浏览次数:20480 次

请各位高手指点(一个ASP.NET问题)

“/WedUser”应用程序中的服务器错误。    
--------------------------------------------    
 
指定的转换无效。        
说明:     执行当前     Web     请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。        
 
异常详细信息:     System.InvalidCastException:     指定的转换无效。    
 
源错误:        
    <asp:GridView   ID= "UserView "   Width= "100% "   runat= "server "  
                  AutoGenerateColumns= "false ">
                  <Columns>
                      </asp:TemplateField>    
行     32:               <asp:TemplateField     HeaderText= "是否为管理员 "> <ItemTemplate>    
行     33:                 <asp:CheckBox     ID= "IsAdminCheck "     Enabled= "false "     runat= "server "     Checked= ' <%#DataBinder.Eval(Container.DataItem, "IsAdmin ")     %> '     />    
行     34:                                             </ItemTemplate>    
行     35:                                             </asp:TemplateField>    
          </Columns>
                </asp:GridView>

  是不是这个语句有错:Checked= ' <%#DataBinder.Eval(Container.DataItem, "IsAdmin ")     %> ',因为checked= "true ",好像 <%#DataBinder.Eval(Container.DataItem, "IsAdmin ")     %> 不能转换为true!


------解决方案--------------------
不是已经在http://community.csdn.net/Expert/topic/5271/5271652.xml?temp=.2638513
回答过你了吗?
Checked= ' <%#(bool)DataBinder.Eval(Container.DataItem, "IsAdmin ") %> '
改成
Checked= ' <%# checkAdmin(DataBinder.Eval(Container.DataItem, "IsAdmin ")) %> '

后台加一个函数:
public bool checkAdmin(object fg){
bool returnValue;
try{
returnValue = Convert.ToBoolean(fg);
}
catch(Exception){
returnValue = false;
}
return returnValue;
}