我有一个Repeater,它包含几个ImageButton元素。我第一次将一个图像列表添加到该Repeater的数据源中,它完全正常工作:
Repeater.DataSource = images;
Repeater.DataBind();
我有一个TextChanged - 事件,在那个事件中,我想用一个新的图像列表覆盖DataSource。
当我这样做时,我收到一个回叫错误。评论出第一个DataBind使第二个完美无缺。我该如何解决这个问题?
编辑:我收到的错误信息是德语(此处:http://i.imgur.com/M9wxexm.jpg),但粗略翻译,则表示:无效的回发或回调参数。使用< .pages enableEventValidation =“true”/。>启用事件验证。 ...
答案 0 :(得分:1)
由于您收到callback
错误,因此应尝试禁用aspx页面的事件验证。这需要在页面指令中完成,该指令将位于aspx页面的顶部。
<%@ Page EnableEventValidation="false"%>
还要牢记以下事实。
对于第一个数据绑定,我假设它在Page_Load
事件中。如果是这种情况,那么请确保它仅在页面未回发时执行,因为在页面回发后,您有文本更改逻辑来填充转发器。
protected void Page_Load( object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
Repeater.DataSource = images;
Repeater.DataBind();
}
}
然后在您的文本更改事件数据绑定相同的转发器,并确保在设置它的数据源后调用DataBind
方法。因此,在文本更改事件处理程序中包含以下两行。当然,images
变量需要在文本更改事件中替换为适当的变量。
Repeater.DataSource = images;
Repeater.DataBind();