将ASP Repeater DataSource转换为C#List

时间:2012-06-08 08:32:26

标签: c# asp.net repeater

我有一个名为rptFoo的转发器和名为listFoo的C#List<String>。 我只知道我可以将List指定为转发器DataSource,如下所示:

rptFoo.DataSource = listFoo
rptFoo.DataBind();

此转发器呈现为Textbox,然后我对文本框的文本进行了一些更改。 我可以将列表反之亦然吗?我的意思是,当我的转发器项目的数据在某个文本框上发生更改时,我是否可以将其分配到我的C#列表中,如下所示:

listFoo = DataSource

我正在寻找比通过foreach逐个访问转发器项更好的方法。 有什么想法吗?

这就是我的方式:

foreach (RepeaterItem item in rptFoo.Items)
{
  TextBox myTextBox= (TextBox)item.FindControl("myTextBox");
  listFoo[item.ItemIndex] = myTextBox.Text;
}

我希望我的转发器上的任何编辑数据能够反映在我的列表中。

提前致谢

1 个答案:

答案 0 :(得分:0)

比循环遍历每个转发器项并找到文本框更好的方法可能是利用TextBox控件的 OnTextChanged 事件处理程序。这将使您可以直接访问TextBox对象,它是新值。