C# 绑定数据后如何更改gridview宽度和重命名标头
我尝试在绑定数据后更改gridview大小并重命名标头,但由于我的数据超过100px,因此出现错误“索引超出范围”,如何解决C# 绑定数据后如何更改gridview宽度和重命名标头,c#,asp.net,data-binding,gridview,C#,Asp.net,Data Binding,Gridview,我尝试在绑定数据后更改gridview大小并重命名标头,但由于我的数据超过100px,因此出现错误“索引超出范围”,如何解决 conn.Open(); cmdString = "SQL"; cmd = new SqlCommand(cmdString, conn); cmd.Parameters.AddWithValue("@courseID", CourseID);
conn.Open();
cmdString = "SQL";
cmd = new SqlCommand(cmdString, conn);
cmd.Parameters.AddWithValue("@courseID", CourseID);
dtr = cmd.ExecuteReader();
gvAssignment.DataSource = dtr;
gvAssignment.Columns[7].ItemStyle.Width = Unit.Pixel(100);
gvAssignment.DataBind();
dtr.Close();
conn.Close();
另一种方法没有错误,但大小不会更改为100
protected void gvAssignment_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[7].Width = 100;
}
检查您的查询。“索引超出范围”可能指向列索引(如果查询中没有8列)请尝试先设置数据绑定,如下所示:
gvAssignment.DataBind();
gvAssignment.Columns[7].ItemStyle.Width = Unit.Pixel(100);
您还可以尝试在绑定数据后更新列宽。为了确保这一点,我们可以在gridview绑定事件中设置它
protected void Page_Load(object sender, EventArgs e)
{
gvAssignment.DataBound += new EventHandler(gvAssignment_DataBound);
}
void gvAssignment_DataBound(object sender, EventArgs e)
{
gvAssignment.Columns[7].ItemStyle.Width = Unit.Pixel(100);
}
我认为问题不在于宽度大小。。。这种情况永远不会引发异常。。。是否确实有8列?是否设置了
AutoGenerateColumns=“true”
?回答是或否,我没有设置AutoGenerateColumns=“true”选择“下载”“学习者ID”“课程ID”“名称”“上载日期”“标记”“注释”这是我的列,我想更改“注释”宽度“选择”“下载”“学习者ID”“课程ID”“名称”“上载日期”“标记”“注释”这是我的列,我想更改“注释” width@user1848681请参阅我的编辑。我相信您需要先绑定数据,然后再更改列宽。在绑定之外,列还不存在。@user1848681在conn.close()之后对gvsassignment.Row(0).Cells.Count进行简单打印,以查看有多少列。。(健全性检查)'System.Web.UI.WebControls.GridView'不包含'Row'的定义,并且没有扩展方法'Row'接受。请将行(0)更改为行[0]