使用两次时出现中继器错误

本文关键字:中继器 错误 两次 | 更新日期: 2023-09-27 18:30:42

>我有一个中继器,它包含几个ImageButton元素。我第一次将图像列表添加到该中继器的数据源时,它工作得很好:

Repeater.DataSource = images;
Repeater.DataBind();

我在某处有一个 TextChanged - 事件,在该事件中,我想用新的图像列表覆盖数据源。

当我这样做时,我收到一个回调错误。注释掉第一个 DataBind 可以使第二个完美运行。我该如何解决这个问题?

编辑:我收到的错误消息是德语(这里:http://i.imgur.com/M9wxexm.jpg),但粗略翻译,这意味着:无效的回发或回调参数。使用 <.pages enableEventValidation="true"/.> ...

使用两次时出现中继器错误

由于收到

callback错误,因此应尝试禁用 aspx 页的事件验证。这需要在页面指令中完成,该指令将位于 aspx 页面的顶部。

<%@ Page EnableEventValidation="false"%>

还要牢记以下事实。

  1. 对于第一个数据绑定,我假设它在Page_Load事件中。如果是这种情况,请确保仅在页面未回发时执行它,因为在页面回发时,您更改了文本逻辑来填充转发器。

    protected void Page_Load( object sender, EventArgs e) 
    {
      if(!Page.IsPostBack)
       {
        Repeater.DataSource = images;
        Repeater.DataBind();
       }
    }
    
  2. 然后在文本中更改事件数据绑定相同的转发器,并确保在设置其数据源后调用 DataBind 方法。 因此,请在文本更改事件处理程序中包含以下两行。当然,images变量需要在文本更改事件中替换为相应的变量。

        Repeater.DataSource = images;
        Repeater.DataBind();