我对GridView有一个奇怪的问题。我设置了一个Select列,并允许排序。如果我选择一行,然后对网格进行排序,选择保持不变并且网格排序。也就是说,突出显示的行已更改,但选择的索引似乎没有。
查看手表中的网格,似乎所选索引属性实际上保持不变,但所选数据键正在更改。
我很困惑,无法追查为什么会这样,有什么想法吗?
答案 0 :(得分:2)
我发现a change request for this exact issue表明了以下内容:
我们不保留设计 跨越各种选择的轨道, 更新,删除等。这部分将 不要改变。
看起来你需要一种不同的方式来跟踪各种选定的行。
答案 1 :(得分:1)
实际上,我找到了解决这个问题的方法,也许并不那么甜,但无论如何,我得到了我想要的东西:) 在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;
}
}
}