0

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

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

在我的代码中的某个时刻,我试图从转发器中读取文本框控件并将它们放入我的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
    }
}
4

1 回答 1

1

ARepeater实际上被认为是一个只读控件。

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

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

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

但是,根据您的具体需要,您应该考虑使用另一个数据绑定控件。

For example, the ListView control is also based on templates like the Repeater but it also supports common actions like editing, inserting and deleting

A ListView control contains the DataKeyNames property used to keep track of the ID's of each row

于 2012-08-08T22:14:54.530 回答