尝试从数据库

时间:2015-06-25 14:13:03

标签: c# asp.net visual-studio

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

  

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

以下是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";

有关

2 个答案:

答案 0 :(得分:1)

您可以尝试更改此

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#代码

答案 1 :(得分:0)

您是否已经在“IF”声明到达IF声明之前对其进行了debbuged并检查了它的值?这可能是在gridview

中使用标题ActDefect确定列的问题