GridView RowDataBound,重新出现已删除的单元格

时间:2012-11-05 20:09:58

标签: c#

我正在研究.Net项目,我在使用GridView时遇到了一些问题。

我的页面中有几个按钮。当我单击绑定我的GridView的按钮时,一切正常,但在此之后,当我点击其他按钮时,在包含文本“Monday”的行的末尾会出现另一个单元格,它是空的。

有人可以告诉我这是什么问题吗?

由于

这是我的代码。

       protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
       {
           if (e.Row.Cells[0].Text.Contains("Monday"))
           {   
                e.Row.BackColor = Color.Gray;
                e.Row.ForeColor = Color.White;
                e.Row.Cells[0].ColumnSpan = 2;
                e.Row.Cells.Remove(e.Row.Cells[1]);
                e.Row.Cells[1].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[2].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Center;
           }
           else
           {
                e.Row.Cells[0].Width = 45;
                e.Row.Cells[1].Width = 400;
                e.Row.Cells[2].Width = 40;
                e.Row.Cells[3].Width = 40;
                e.Row.Cells[4].Width = 40;
                e.Row.Cells[5].Width = 40;
                e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[2].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[3].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Center;
                e.Row.Cells[5].HorizontalAlign = HorizontalAlign.Center;      
           }
       }

1 个答案:

答案 0 :(得分:0)

转载了这个问题。看来gridview添加单元格以使其具有与列相同的编号。我能找到的唯一修复是在Page_Load事件中添加以下代码(您也可以将其添加到任何按钮方法 - 但这不实用):

foreach (GridViewRow gridRow in GridView1.Rows) {
if (gridRow.Cells[0].Text.Contains("Monday") && gridRow.Cells[0].ColumnSpan == 2 && gridRow.Cells.Count == 6)
gridRow.Cells.RemoveAt(5);
}

另一个解决方案(使用jquery)我发现谷歌搜索但未测试是在这里:
http://forums.asp.net/t/1413833.aspx/1
希望它有所帮助!