使用分页时,从Repeater的数据源中获取所有项目

时间:2013-10-22 07:44:05

标签: c# asp.net .net-3.5 custom-controls repeater

我有一个Repeater控件,绑定到PagedDataSource,该数据源是我自己制作的自定义控件列表。这些自定义控件包含几个文本框。

我有一个保存按钮,当它被点击时我想将所有自定义控件中的数据保存到数据库,无论它们在哪个页面上 - 但目前我只能访问显示在其上的自定义控件当前页面。

我试图在btnSave_Click事件中创建一个等于当前数据源的新临时数据源,但不是PagedDataSource。这样我的转发器包含所有自定义控件 - 但是 - 文本框字段中所做的更改不再可用。然后,我尝试在自定义控件中的文本框上添加JavaScript onchange事件,以便每当文本更改时都会触发回发,并且将更新用户控件代码隐藏中的属性。这也没有用。

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

将每个页面索引更改事件(或上一个/下一个按钮)的更改值保存到持久性对象(列表)

http://www.dotnetfunda.com/articles/show/1611/how-to-select-multiple-records-from-multiple-pages-of-the-gridview-and

答案 1 :(得分:0)

您的非PagedDataSource为空的原因是因为文本框中的更改存在于客户端而不是服务器上 - 您需要将控件中的值与转发器中的空插槽同步。

答案 2 :(得分:-1)

Repeater没有内置分页(如GridView或其他复杂控件),因此它不提供诸如PageIndexChanging事件之类的事件。因此,我假设您有自己的页面导航实现。因此,您应该调用您在该实现函数中提供的函数。

答案 3 :(得分:-1)

尝试使用通用列表和跳过并采用该方法