我在名为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";
答案 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确定列的问题