当前位置:  开发笔记 > 编程语言 > 正文

如何在ASP.NET GridView中基于DataKey设置选定的行?

如何解决《如何在ASP.NETGridView中基于DataKey设置选定的行?》经验,为你挑选了2个好方法。

我想要类似于以下伪代码的东西:

myGridView.SelectedIndex = myGridView.DataKeys.IndexOf("mySpecificKey");

我做了一些Intellisense探索,但我还没有找到一个明显的方法来做到这一点.如果找不到DataKey,我想将SelectedIndex设置为-1.



1> Larsenal..:

我结束了

        For n As Integer = 0 To myGridView.DataKeys.Count - 1
            If myGridView.DataKeys(n).Value = myKeyObj Then
                myGridView.SelectedIndex = n
            End If
        Next



2> Mark Good..:

你考虑过Linq方法吗?

用法:

GridView1.SelectedIndex = GridView1.DataKeys.IndexOf(id);

码:

public static class WebControlsEx
{
    public static int IndexOf(this DataKeyArray dataKeyArray, object value)
    {
        if (dataKeyArray.Count < 1) throw new InvalidOperationException("DataKeyArray contains no elements.");
        var keys = dataKeyArray.Cast().ToList();
        var key = keys.SingleOrDefault(k => k.Value.Equals(value));
        if (key == null) return -1;
        return keys.IndexOf(key);
    }
}

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有