This one might be simple, but here it is anyway.
I have a List<Object> that I bind to a repeater. The repeater binds all of the fields to textboxes except Id. In my web page, whenever a user adds a new item, I create a new Object in my list with a unique Id and rebind my repeater.
At a certain point in my code, I am trying to read the textbox controls from the repeater and put them into my List<Object>. However, I need access to the Id field to know which List item to insert into. How can I get the specific Id while I’m going through the repeater?
I know I can just create a hidden field with the Id in the repeater control and get it that way, but is there a cleaner way to do this?
Example:
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
}
}
A
Repeateris actually considered as a read-only control.It is one of the simplest built-in data-bound controls.
It does not support actions like editing, inserting, deleting out of the box. If you want to use one of these actions in a repeater, you would have to write custom code to accomplish it. Even paging and sorting is not supported out of the box using a
Repeater.Therefore, there’s no better way to accomplish your requirement while using a
Repeatercontrol, so aHiddenFieldwould be a good way to fulfill your requirement.However depending on your specific needs, you should consider using another data-bound control.
For example, the ListView control is also based on templates like the
Repeaterbut it also supports common actions like editing, inserting and deletingA
ListViewcontrol contains theDataKeyNamesproperty used to keep track of the ID’s of each row