【问题标题】:How to find a string value in the radgrid by FindItemByKeyValue如何通过 FindItemByKeyValue 在 radgrid 中查找字符串值
【发布时间】:2013-11-13 14:28:12
【问题描述】:

您好,我有一个 radgrid,我必须在其上找到一个值,如果找到该项目,则生成消息

下面是我的代码

Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAdd.Click
        If IsAlreadyExist() Then
            ram.Alert("")
        Else
            If IsAlreadyAdded() Then
                ram.Alert("")
            Else
                employees()
            End If


        End If
    End Sub

这是 IsAlreadyAdded 方法,我试图在其中找到网格中的特定值,如果它存在,它将返回 false

Private Function IsAlreadyAdded() As Boolean
        'If rgListnk.MasterTableView.Items.Count > 0 Then
        Dim itm As GridDataItem = rgList.MasterTableView.FindItemByKeyValue("DEFAULT", "Y")

        If IsNothing(itm) Then
            Return False
        Else
            Return True
        End If

    End Function

谢谢...

【问题讨论】:

    标签: asp.net vb.net telerik radgrid


    【解决方案1】:

    您需要遍历 Grid 的每一行才能找到单元格的值。

    如果您想通过 FindItemByKeyValue 查找项目,请确保指定了 DataKeyNames

    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <telerik:RadGrid ID="RadGrid1" runat="server"
        OnNeedDataSource="RadGrid1_NeedDataSource">
        <MasterTableView DataKeyNames="Id">
        </MasterTableView>
    </telerik:RadGrid>
    <asp:Button runat="server" ID="Button1"
        OnClick="Button1_Click" Text="Submit" />
    
    public partial class Default : System.Web.UI.Page
    {
        public class User
        {
            public int Id { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        protected void RadGrid1_NeedDataSource(object sender,
            GridNeedDataSourceEventArgs e)
        {
            RadGrid1.DataSource = new List<User>
            {
                new User {Id = 1, FirstName = "Jon", LastName = "Doe"},
                new User {Id = 2, FirstName = "Marry", LastName = "Doe"},
                new User {Id = 3, FirstName = "Eric", LastName = "Newton"},
            };
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            var firstItem = RadGrid1.MasterTableView.FindItemByKeyValue("Id", 1);
            if (firstItem != null)
            {
                var firstName = firstItem["FirstName"].Text;
                var lastName = firstItem["lastName"].Text;
            }
    
            foreach (GridItem item in RadGrid1.MasterTableView.Items)
            {
                if (item is GridDataItem)
                {
                    var dataItem = item as GridDataItem;
                    var firstName = dataItem["FirstName"].Text;
                    var lastName = dataItem["lastName"].Text;
                }
            }
        }
    }
    

    【讨论】:

    • 感谢您抽出宝贵时间回复。为什么我不能通过 .FindItemByKeyValue() 任何具体原因来做?
    • 我更新了答案。确保指定了 MasterTableViewDataKeyNames(在您的情况下是 DEFAULT)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2016-07-03
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多