【问题标题】:Selected row does not change after a GridView sortGridView 排序后选定的行不会更改
【发布时间】:2009-09-09 17:11:22
【问题描述】:

我对 GridView 有一个奇怪的问题。我设置了一个 Select 列,并允许排序。如果我选择一行,然后对网格进行排序,则选择保持不变并且网格排序。也就是说,突出显示的行发生了变化,但选择的索引似乎没有。

查看手表中的网格,似乎 selected index 属性实际上保持不变,但 selected 数据键正在改变。

我很困惑,一直无法追查为什么会发生这种情况,有什么想法吗?

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    我发现a change request for this exact issue 声明如下:

    我们不保留这是设计使然 跟踪各种选择, 更新、删除等。这部分将 不可更改。

    看起来您将需要一种不同的方式来跨排序跟踪所选行。

    【讨论】:

    • 他们真的无法跟踪选定的 RECORD,只能跟踪选定的 ROW。为了跟踪所选记录,他们需要知道所表示的数据集的主键字段是什么,这可能会因情况而异。在一种情况下,它可能是一个名为 ROWID 的字段;在另一种情况下,它可能是三个字段的组合;在第三种情况下,数据 - 因为它被带回 - 甚至可能没有主键集。
    • 啊,这对我来说就是答案!至少我知道我现在没有疯。我想我实际上只是删除选定的行,因为我真的不在乎它是否跟踪它。实际上,我确实在我们使用的修改后的多选网格中跟踪选定的行。这个特殊的单选网格让我失望了。感谢您清理一切!
    【解决方案2】:

    实际上,我找到了解决这个问题的方法,也许不是那么甜蜜,但无论如何,我得到了我想要的 :) 在 GridView_PreRender 加载事件中

    protected void GridView1_PreRender(object sender, EventArgs e) { //如果文本太长,则将其截断..

            if (GridView1.Controls.Count != 0)
            {
                foreach (GridViewRow r in GridView1.Controls[0].Controls)
                {
                    foreach (TableCell tc in r.Controls)
                    {
                        if (tc.Text != "" && tc.Text.Length > 39)
                        {
                            tc.Text = tc.Text.Substring(0, 39) + " ...";
                        }
                    }
                }
            }
    
            // here is the where the magic happens :)
            if (GridView1.SelectedRow != null)
            {
                GridViewRow row = GridView1.SelectedRow;
                if (row.Cells.Count > 1)
                {
                    //Here I pick the p.keyID
                    SetOrderData(Convert.ToInt32(row.Cells[1].Text));
    
                    this.LabelDebug.Text = row.Cells[1].Text;
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 2014-10-21
      • 2013-06-20
      相关资源
      最近更新 更多