gv控件问题

wjbmbl 2008-09-16 10:38:59
我想改变满足条件的行的前景色,为什么提示出错?

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row .RowType ==DataControlRowType .DataRow )
{
if (Convert .ToInt32 (DataBinder.Eval(e.Row.DataItem, "结账状态")) ==1)
{
e.Row.ForeColor = Color.Blue;
}
}
}

-----错误信息-----

“/WebSite2”应用程序中的服务器错误。
--------------------------------------------------------------------------------

输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误:


行 48: if(e.Row .RowType ==DataControlRowType .DataRow )
行 49: {
行 50: if (Convert .ToInt32 (DataBinder.Eval(e.Row.DataItem, "结账状态")) ==1)
行 51: {
行 52: e.Row.ForeColor = Color.Blue;


源文件: c:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\WebSites\WebSite2\期末业务\EndTerm.aspx.cs 行: 50
...全文
88 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjbmbl 2008-09-16
  • 打赏
  • 举报
回复
我知道错在哪了,
SELECT [FinanceName] as '会计期', (case [Checkout status] when 1 then '已结' when 0 then '未结帐' end) AS '结账状态' FROM [SYS_KJQ]

中的“已结帐”错了,汉字错了
哈哈还是谢谢january03!谢谢你给的提示,不然真不知道如何下手呢!
wjbmbl 2008-09-16
  • 打赏
  • 举报
回复
在给这个GV绑定数据时的SQL语句是:

SELECT [FinanceName] as '会计期', (case [Checkout status] when 1 then '已结帐' when 0 then '未结帐' end) AS '结账状态' FROM [SYS_KJQ]

-------果真不是1或0,但是我改了代码如下-------

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row .RowType ==DataControlRowType .DataRow )
{
if (DataBinder.Eval(e.Row.DataItem, "结账状态").ToString ().Trim () =="已结账")
{
e.Row.ForeColor = Color.Yellow;
}
}
}
january03 2008-09-16
  • 打赏
  • 举报
回复
if (Convert .ToInt32 (DataBinder.Eval(e.Row.DataItem, "结账状态")) ==1)
{
e.Row.ForeColor = Color.Blue;
}


------------------------------------------------------
我怀疑是DataBinder.Eval(e.Row.DataItem, "结账状态")这个返回的值不是0,或者1,而是其他的字符串,所以字符串你在转换为数字的时候,会出现那样的错误

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧