用户控件中的DataList中的ItemTemplate事件的小问题?
页面提示错误:
回发或回调参数无效。在配置中使用 <pages enableEventValidation= "true "/> 或在页面中使用 <%@ Page EnableEventValidation= "true " %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
加入了EnableEventValidation= "true "后,则事件无法发生
这是aspx代码:
<asp:DataList ID="DLRoomtype" runat="server" RepeatDirection="Horizontal" RepeatColumns="17" OnItemCommand="DLRoomtype_SelectedIndexChanged" DataKeyField="RoomID">
<ItemTemplate >
<div>
<asp:ImageButton ID="imgbtnState" runat="server" ImageUrl='<%# GetRoomStateImageUrlByState( Eval("State").ToString() ) %>' CommandName="modify" /></div>
<div><asp:Label ID="lblRoomNumber" runat="server" Text='<%# Eval("Number") %>'></asp:Label></div>
</ItemTemplate >
</asp:DataList>
这是aspx.cs代码:
protected void DLRoomtype_SelectedIndexChanged(object source, DataListCommandEventArgs e)
{
int n = e.Item.ItemIndex;
DLRoomtype.Items[n].BackColor = System.Drawing.Color.Red;
int key = Convert.ToInt32(this.DLRoomtype.DataKeys[n]);
Session["key"] = key;
}