我遇到一些问题,只能在我的表格中显示日期..
我在上一个问题上得到了一些帮助,但遇到了另一个问题。这些是我们添加的内容:
((BoundField)gvEmployeeReview.Columns[1]).DataFormatString = "{0:d}"; //date hired column
((BoundField)gvEmployeeReview.Columns[8]).DataFormatString = "{0:d}"; //next review column
这是aspx页面http://pastebin.com/DnH3wcAG
这是第http://pastebin.com/yY2nbbEG页后面的代码
当我运行它时,我得到:
“索引超出范围。必须是非负数且小于集合的大小。
参数名称:索引
描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。
参数名称:index“及其在此行上”第158行:((BoundField)gvEmployeeReview.Columns [1])。DataFormatString =“{0:d}”; // date雇用专栏“
试图解决这个问题的任何帮助都会很棒。我没有运气
答案 0 :(得分:3)
如异常所示,您正在访问超出范围的集合的成员。可能gvEmployeeReview.Columns[1]
不存在。 gvEmployeeReview.Columns
中有多少成员?
答案 1 :(得分:3)
这与日期格式无关。尝试访问列时可能会发生错误。请注意,列索引从零开始。如果您有N
列,则索引范围从0
到N-1
。尝试使用索引[0]
和[7]
代替[1]
和[8]
:
((BoundField)gvEmployeeReview.Columns[0]).DataFormatString = "{0:d}";
((BoundField)gvEmployeeReview.Columns[7]).DataFormatString = "{0:d}";
这会产生实际的列数
gvEmployeeReview.Columns.Count
更新
我不是网络专家;我刚刚用GridView
进行了测试,我立即得到了日期格式。我使用了像这样的对象数据源:
创建具有所需属性的类。添加一个静态方法,返回带有一些实际或样本数据的List<T>
public class Model
{
public int ID { get; set; }
public DateTime BeginDate { get; set; }
public DateTime EndDate { get; set; }
public string Name { get; set; }
public static List<Model> GetModels()
{
return new List<Model> {
new Model{ BeginDate=DateTime.Now,
EndDate=DateTime.Now.AddDays(1), ID=1, Name="test"},
new Model{ BeginDate=DateTime.Now.AddDays(10),
EndDate=DateTime.Now.AddDays(12), ID=1, Name="test 2"}
};
}
}
在页面上放置GridView
并打开任务窗口,点击[>]
右上角附带的小GridView
。
在Choose Data Source...
中选择<New data source...>
。
在打开的Data Source Configuration Wizard
窗口中,选择Object
,然后点击OK
。然后选择Model
类作为业务对象,然后单击Next >
。最后在GetModels
标签上选择SELECT
,然后点击完成。
在第4点的最后一步之后,打开一个带有问题"Refresh Fields and Keys for 'GridView1'"
的对话框窗口。 Klick是的。设计器会自动为所选类的每个属性添加列,并显示一些示例数据。
现在,再次点击[>]
,然后选择Edit Columns...
。选择左下方列表中的日期列。您可以在属性窗口的DataFormatString
部分找到Data
属性。您可以在此处输入{0:d}
。
答案 2 :(得分:0)
查看您的集合数据源,尝试阅读不存在的内容。可以这样想:你有三个水桶。现在我问你第四桶里有什么?这个错误告诉我我没有第4个桶。
答案 3 :(得分:0)
我只是重新编写页面并在gridview中构建表而不是在代码中构建它...最后它变得更容易......改变了一些代码......但事实证明好...感谢所有输入