Asp.net 如何通过FindItemByKeyValue在radgrid中查找字符串值
嗨,我有一个radgrid,我必须在上面找到一个值,如果找到了该项,则生成消息 下面是我的代码Asp.net 如何通过FindItemByKeyValue在radgrid中查找字符串值,asp.net,vb.net,telerik,radgrid,Asp.net,Vb.net,Telerik,Radgrid,嗨,我有一个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
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
谢谢…为了找到单元格的值,您需要循环遍历网格的每一行 如果要通过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;
}
}
}
}
公共部分类默认值:System.Web.UI.Page
{
公共类用户
{
公共int Id{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
}
受保护的无效页面加载(对象发送方、事件参数e)
{
}
受保护的void RadGrid1_NeedDataSource(对象发送方,
GridNeedDataSourceEventArgs(e)
{
RadGrid1.DataSource=新列表
{
新用户{Id=1,FirstName=“Jon”,LastName=“Doe”},
新用户{Id=2,FirstName=“mary”,LastName=“Doe”},
新用户{Id=3,FirstName=“Eric”,LastName=“Newton”},
};
}
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
var firstItem=RadGrid1.MasterTableView.FindItemByKey值(“Id”,1);
if(firstItem!=null)
{
var firstName=firstItem[“firstName”]。文本;
var lastName=firstItem[“lastName”].Text;
}
foreach(RadGrid1.MasterTableView.Items中的GridItem项)
{
if(项为GridDataItem)
{
var dataItem=作为GridDataItem的项目;
var firstName=dataItem[“firstName”].Text;
var lastName=dataItem[“lastName”].Text;
}
}
}
}
感谢您抽出时间回复。为什么我不能通过.FindItemByKeyValue()完成此操作?有什么具体原因吗?我更新了答案。确保指定了MasterTableView的DataKeyName(在您的情况下,它是默认值)。