在转发器控件中查找项



这个可能很简单,但无论如何它就在这里。

我有一个绑定到中继器的List<Object>。转发器将所有字段绑定到文本框,但 Id 除外。在我的网页中,每当用户添加新项目时,我都会使用唯一Id在列表中创建一个新Object,并重新绑定我的转发器。

在我的代码中的某个点,我正在尝试从中继器读取文本框控件并将它们放入我的List<Object>中。但是,我需要访问Id字段才能知道要插入到哪个列表项。如何在通过中继器时获取特定Id

我知道我可以在中继器控件中使用 Id 创建一个隐藏字段并以这种方式获得它,但是有没有更干净的方法来做到这一点?

例:

if (DependentRptr.Items.Count > 0)
{
    for (int count = 0; count < DependentRptr.Items.Count; count++)
    {
        int did = (form.UserId + (count + 1)); //I'm trying to get the id of this field here.
        ...get control info...
        var temp = AddedDependents.ToList().Find(p => p.Id == did); //here is where I search with the id
    }
}

Repeater实际上被视为只读控件。

它是最简单的内置数据绑定控件之一。

它不支持开箱即用的编辑、插入、删除等操作。如果要在转发器中使用这些操作之一,则必须编写自定义代码来完成它。甚至不支持使用 Repeater 开箱即用的分页和排序。

因此,在使用Repeater控件时,没有更好的方法来实现您的要求,因此HiddenField将是满足您的要求的好方法。

但是,根据您的特定需求,应考虑使用另一个数据绑定控件。

例如,ListView 控件也基于Repeater等模板,但它也支持编辑、插入和删除等常见操作

ListView控件包含用于跟踪每行 ID 的 DataKeyNames 属性

最新更新