繁体   English   中英

尝试从数据库中将1显示为“是”时发生错误

[英]error when trying to display 1 as YES from database

我在一个名为ActDefect的数据库中有一列显示null或1。在我的GridView中,我希望它显示YES而不是1,如果它为null,则显示NO。 但我收到此错误:

指定的参数超出有效值范围。 参数名称:索引

这是ActDefect的代码:

<asp:BoundField DataField="ActDefect" HeaderText="Defects" SortExpression="ActDefect"></asp:BoundField>

int index = gv.Columns.HeaderIndex("ActDefect");
if (main.ActDefect != null)
{
      e.Row.Cells[index].Text = "YES";
}
else
{
      e.Row.Cells[index].Text = "NO";
}

它说错误出在e.Row.Cells[index].Text = "YES";

您可以尝试更改此

int index = gv.Columns.HeaderIndex("ActDefect");

对此

int index = gv.Columns.HeaderIndex("Defects");

另外,如果这不起作用,请改为:

<asp:BoundField DataField="ActDefect" HeaderText="Defects" SortExpression="ActDefect"></asp:BoundField>

写这个

<asp:TemplateField HeaderText="Defects">
    <ItemTemplate>
        <asp:Label Text='<%# String.IsNullOrEmpty(Eval("ActDefect").ToString())  ? "No" : "Yes" %>' runat="server"  id="myID"/>
    </ItemTemplate>
</asp:TemplateField>

您可以删除您的C#代码

您是否在到达IF语句之前调试并检查了“索引”的值? 确定网格视图中标题为ActDefect的列可能是一个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM