1

我有一个 GridView,我在其中的各个点添加了额外的 HeaderRows,以给 GridView 提供不同部分的错觉。我遇到的问题是,当我执行回发时,我创建的 HeaderRows 变成了空白行。我可以再次添加额外的 HeaderRows,但是我会遇到空白行将数据“碰撞”到不正确的“部分”的问题。

我想做的是,在回发时,调用一个贯穿 GridView 并删除空白行/旧 HeaderRows 的函数,然后调用首先添加 HeaderRows 的函数。

我需要有关删除行的功能的帮助。我现在拥有的函数代码是:

protected void removeBlankRows()
{
    foreach (GridViewRow row in GridView1.Rows)
    {
        if (row.Cells[6].Text == "")
        {
            //-->code to remove blank row here<--
        }
    }
} 
4

3 回答 3

0
protected void removeBlankRows()
{
    for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                if (GridView1.Rows[i].RowType == DataControlRowType.DataRow)
                {
                    string strtrial = Convert.Tostring(row.Cells[6].Text);
                     if(string.IsNullOrEmpty(strtrial ))
                     GridView1.DeleteRow(i);
                }
            }

Rowbound但是,如果您在事件中删除这些行会更好。

于 2013-08-27T16:20:11.640 回答
0
var blanks = GridView1.Rows
    .Where( e => string.IsNullOrEmpty(e.Cells[6].Text))
    .Select(e => e.RowIndex);

foreach(var blank in blanks)
    GridView1.DeleteRow(blank);
于 2013-08-27T16:38:20.927 回答
0

为什么不只是隐藏行?

private void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
 {
    if (e.Row.Cells[6].Text == "") 
        e.Row.Visible = false;
 }

另外,为什么不隐藏数据绑定事件的记录而不是遍历行?

于 2013-08-27T16:51:58.640 回答