C# 试图在datetime中缩短时间
我在表格中只显示一个日期时遇到了一些问题 我在前一个问题上得到了一些帮助,但遇到了另一个问题。以下是我们添加的内容:C# 试图在datetime中缩短时间,c#,asp.net,gridview,C#,Asp.net,Gridview,我在表格中只显示一个日期时遇到了一些问题 我在前一个问题上得到了一些帮助,但遇到了另一个问题。以下是我们添加的内容: ((BoundField)gvEmployeeReview.Columns[1]).DataFormatString = "{0:d}"; //date hired column ((BoundField)gvEmployeeReview.Columns[8]).DataFormatString = "{0:d}"; //next review column 这是aspx页面
((BoundField)gvEmployeeReview.Columns[1]).DataFormatString = "{0:d}"; //date hired column
((BoundField)gvEmployeeReview.Columns[8]).DataFormatString = "{0:d}"; //next review column
这是aspx页面下面是代码隐藏页
当我运行它时,我得到: “索引超出范围。必须为非负且小于集合的大小 参数名称:索引
描述:在执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪,以了解有关错误及其在代码中起源的详细信息 异常详细信息:System.ArgumentOutOfRangeException:索引超出范围。必须为非负且小于集合的大小。
参数名称:索引“及其在此行上”第158行:((BoundField)gvEmployeeReview.Columns[1])。DataFormatString=“{0:d}”;//日期雇用列
任何试图解决这个问题的帮助都将是非常棒的。我没有任何运气正如例外情况所说,您正在访问一个超出范围的集合的成员。可能
gvEmployeeReview.Columns[1]
不存在。gvEmployeeReview.Columns
中有多少成员?如异常所示,您正在访问超出范围的集合的成员。可能gvEmployeeReview.Columns[1]
不存在。gvEmployeeReview.Columns
中有多少成员?这与日期格式无关。可能是在尝试访问列时出错。请注意,该列索引以零为基础。如果有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
做了一个测试,我马上就得到了正确的日期格式。我使用的对象数据源如下:
列表
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"}
};
}
}
公共类模型
{
公共int ID{get;set;}
公共日期时间起始日期{get;set;}
公共日期时间结束日期{get;set;}
公共字符串名称{get;set;}
公共静态列表GetModels()
{
返回新列表{
新模型{BeginDate=DateTime.Now,
EndDate=DateTime.Now.AddDays(1),ID=1,Name=“test”},
新模型{BeginDate=DateTime.Now.AddDays(10),
EndDate=DateTime.Now.AddDays(12),ID=1,Name=“test 2”}
};
}
}
GridView
,点击GridView
右上角的小[>]
打开任务窗口中选择数据源…
选择
数据源配置向导
窗口中,选择对象
,然后单击确定
。然后选择模型
类作为业务对象,并单击下一步>
。最后在select
选项卡上选择GetModels
,然后单击finish“刷新“GridView1”的字段和键”
。克利克:是的。设计器会自动为选定类的每个属性添加列,并显示一些示例数据[>]
并选择编辑列…
。在左下角列表中选择一个日期列。您将在属性窗口的Data
部分找到DataFormatString
属性。您可以在这里输入{0:d}
这与日期格式无关。可能是在尝试访问列时出错。请注意,该列索引以零为基础。如果有
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
做了一个测试,我马上就得到了正确的日期格式。我使用的对象数据源如下:
列表
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"}
};
}
}
公共类模型
{
公共int ID{get;set;}
公共日期时间起始日期{get;set;}
公共日期时间结束日期{get;set;}
公共字符串名称{get;set;}
公共静态列表GetModels()
{
返回新列表{
新模型{BeginDate=DateTime.Now,
EndDate=DateTime.Now.AddDays(1),ID=1,Name=“test”},
新模型{BeginDate=DateTime.Now.AddDays(10),
EndDate=DateTime.Now.AddDays(12),ID=1,Name=“test 2”}
};
}
}
GridView
,点击GridView
右上角的小[>]
打开任务窗口中选择数据源…
选择
数据源配置向导
窗口中,选择对象
,然后单击确定
。然后选择模型
类作为业务对象,并单击下一步>
。最后在select
选项卡上选择GetModels
,然后单击finish“刷新“GridView1”的字段和键”
。克利克:是的。设计器会自动为e添加列