请问我怎么解决这个判断问题?
gridview控件
<asp:TemplateField HeaderText="状态" SortExpression="State">
<ItemTemplate>
<%#((bool)Eval("state"))?"在用":"作废"%>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" /></asp:TemplateField>
现在有一列,我是根据数据库中查询的state来判断是填写 "在用"还是"作废"
现在的问题是:当能查询到记录时 状态 这一列可以正常填写;而查询不到记录是 state也就不存在了,程序就会运行出错
请问怎么办?
------解决方案--------------------
法一:
<%# Eval("state") == "true" ? "有用" : Eval("state") == "false"?"作废":"其他"%>
法二
查询的时候在数据库中用case when 来进行判断
法三
在后台写个方法 来行进判断
public string GetState(bool state)
{
//根据state值来返回不同的字串
}
在gridview中绑中调用
<%# GetState((bool)Eval("State")) %>
------解决方案--------------------
如果你确实一定要用一个假的数据行去绑定GridView,那么就不应该简单地在DataTable中增加一行,还要在代码中仔细地考虑每个列是否需要设置初始值得问题。