如何使用自动生成字段将GridView2.Columns作为BoundField操作?
如何使用自动生成字段将GridView2.Columns作为BoundField操作? 索引超出范围?GridView2。列[6]作为边界字段,我使用自动生成字段 JobPostDataContext db=新的JobPostDataContext如何使用自动生成字段将GridView2.Columns作为BoundField操作?,gridview,string-formatting,boundfield,Gridview,String Formatting,Boundfield,如何使用自动生成字段将GridView2.Columns作为BoundField操作? 索引超出范围?GridView2。列[6]作为边界字段,我使用自动生成字段 JobPostDataContext db=新的JobPostDataContext var query = from j in db.JobLists join u in db.UserLists on j.UserID equa
var query = from j in db.JobLists
join u in db.UserLists
on j.UserID equals u.UserID
where j.JobTitle.Contains(this.TextBox1.Text)
select new
{
j.JobID,
j.JobTitle,
j.Summary,
j.Details,
j.CompanyName,
j.CompanyEmail,
j.DatePosted,
j.UserID,
u.City,
u.State,
u.Country
};
GridView2.DataSource = query;
GridView2.DataBind();
BoundField DatePosted = GridView2.Columns[6] as BoundField;
DatePosted.DataFormatString = "{0:MMM,dd yy}";
正如我在评论中提到的,您不会从查询中得到任何结果,因此没有0列。这就是为什么您无法访问列[6]
列。计数返回0。这是零列。您无法访问任何列。计数基于1,而[Index]列基于0。我想这就是您感到困惑的地方。由于GridView.Columns是一个集合,您可以检查它的.Count属性。它认为它有多少列?但我使用自动生成字段。我怀疑我是否可以访问任何列[索引]。我有很多列只是想操纵其中一个,所以我保留了自动生成选项。我是否可以使用Boundfield编码仅覆盖一列?绑定数据后,将立即生成列。此时,有一个Columns.Count和一个Columns[Index]。在尝试将GridView2.Columns[6]作为BoundField执行之前;,使用GridView1.Columns.Count.ToString检查Columns.Count.it为0,然后如何使用子列6访问0内部。同样,因为我使用自动生成字段,所以即使我尝试GridView2.Columns[0],它仍然会弹出System.ArgumentOutOfRangeException:索引超出范围。必须为非负数且小于集合的大小。