2012-04-05 93 views
0

我有一些问题,只得到一个日期在我的表显示..试图切断时间,日期时间

我得到了前一个问题的一些帮助,但遇到了另一个问题。这些是我们已经添加的东西:

((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
当我运行它,我得到:

“索引超出范围必须为非负数且小于集合的大小

参数名称:index
描述:未处理的exc在执行当前Web请求期间发生了eption。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。
参数名称:索引“和它在这一行”第158行:((BoundField)gvEmployeeReview.Columns [1])。DataFormatString =“{0:d}”; //日期聘请列”

任何帮助,试图解决这一问题将是太棒了。作为例外说,你所访问的集合,是一个成员,我还没有任何运气

回答

0

我只是重新编写了页面,并在gridview中构建了表格,而不是在代码中构建它......最后它变得更简单了..需要更改一些代码......但它全部转向出了好..感谢所有的输入

3

可能gvEmployeeReview.Columns[1]不存在gvEmployeeReview.Columns有多少个成员?

+0

**答案**或另一个问题? :D – 2012-04-05 15:29:01

+0

好,根据统计..我没有收集..但我不明白我怎么可以有数据显示..它不在收集..我可能做错了什么..但是不知道什么 – 2012-04-05 15:45:28

3

这与日期格式无关,可能是在尝试访问列时发生错误注意列索引是基于零的。如果您有N列,索引范围从0N-1。尝试使用索引[0][7],而不是[1][8]

((BoundField)gvEmployeeReview.Columns[0]).DataFormatString = "{0:d}"; 
((BoundField)gvEmployeeReview.Columns[7]).DataFormatString = "{0:d}"; 

这就产生了我不是一个网络专家列

gvEmployeeReview.Columns.Count 

UPDATE

的实际数量; hovever,我只是用GridView做了一个测试,我马上得到了日期格式。我使用这样的对象数据源:

  1. 创建一个具有所需属性的类。添加静态方法返回一些真实或样本数据

    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"} 
         }; 
        } 
    } 
    
  2. 在页面上放置一个GridView一个List<T>,并与小[>]点击连接到GridView的右上角打开任务窗口。

  3. Choose Data Source...选择<New data source...>

  4. 在打开的Data Source Configuration Wizard窗口中,选择Object,然后单击OK。然后选择Model类作为业务对象,然后单击Next >。最后在SELECT标签上选择GetModels,然后单击完成。

  5. 在点4的最后一步之后,打开一个对话窗口,其中问号为"Refresh Fields and Keys for 'GridView1'"。 Klick是的。设计师自动为选定类的每个属性添加列并显示一些示例数据。

  6. 现在,再次点击[>]并选择Edit Columns...。在左下方的列表中选择一个日期列。您会在Data部分的属性窗口中找到DataFormatString属性。在这里你可以输入{0:d}

+0

好按照计数..我没有收集..但我不明白我怎么可以有数据显示..它不在收集..我可能做错了什么..但不知道是什么 – 2012-04-05 15:44:55

+0

如果您尝试设置格式字符串BEFORE,那么将数据添加到具有AutoGenerateColumns属性集的'GridView'中,那么它将不会有列! – 2012-04-05 16:10:33

+0

我设置自动生成为false ..但随后我的整个表消失..tried格式化字符串..still去错误..但是,当我采取格式化字符串和autogen = false out..table工作正常...减去出现 – 2012-04-05 16:40:53

0

看看你的收藏数据源,试图读取一些不存在的东西。想想这样:你有三个桶。现在我问你第四桶里有什么?这个错误是你告诉我我没有第四桶。

+1

yea ..我明白错误的含义。 。不知道为什么我得到它。我也很确定鸭子是在第四桶 – 2012-04-05 15:47:37