请各位高手指点(一个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;
}