gpt4 book ai didi

c# - 启用分页时在 asp.ListView 中查找具有值的项目

转载 作者:行者123 更新时间:2023-11-30 17:16:52 25 4
gpt4 key购买 nike

我试图在单独页面上的 aspx ListView 中找到所选项目,然后切换页面并选择该项目。我有我正在寻找的 ListViewItem 的 value 属性,但似乎无法让它工作。这是我尝试过的:

for (int i = 0; i < lvProject.Items.Count; i++)
{
if (((Label)lvProject.Items[i].FindControl("Project_IDLabel")).Text == project.ToString())
{
lvProject.SelectItem(i);
break;
}
}

所以 lvProject 是我的 ListView 。项目变量是一个 Int64,代表我的项目的 UID。这也是我的 ListViewItems 的值(value)。上面代码的问题是,当启用分页时,项目位于不同的页面上,这将不起作用,因为 listView.Items.Count 仅设置为当前页面上的项目数。

我的目标是找到该项目,设置 ListView 以显示正确的页面,最后选择该项目。您会认为我可以只设置 SelectedValue 属性,但这并不那么简单,因为它是只读的。任何想法都会有很大帮助,在此先感谢。

--罗马

最佳答案

为了从对象数据源中获取总记录数,您应该按如下方式使用 Selected 事件:

protected void ObjectDataSource1_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
// Get total count from the ObjectDataSource
DataTable dt = e.ReturnValue as DataTable;
if (dt != null) recordCount = dt.Rows.Count; // recordCount being declared outside the method
}

然后您就可以按如下方式搜索该项目:

for (int i = 0; i < recordCount; i++)
{
Label lblItem = (Label)lvProject.Items[i].FindControl("IdLabel");
if (lblItem.Text.Equals(itemToSearch))
{
lvProject.SelectedIndex = i;
break;
}
}

希望对您有所帮助!

关于c# - 启用分页时在 asp.ListView 中查找具有值的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com