UpdatePanel中的CustomValidator奇怪地在IE9中工作
  我有一个CustomValidator ,它位于UpdatePanel内部的Wizard控件中。 
  没有UpdatePanel ,一切都按预期工作,但只有在添加UpdatePanel ,IE9才会出现奇怪的现象。 
  在向导的一个步骤中,我有一个通过搜索填充的GridView ,并且所有这些工作都很好。 
<asp:CustomValidator ID="cvSelectedUser" runat="server"
    CssClass="Validator"
    ErrorMessage="You must select a user to alter before you may continue"
    OnServerValidate="cvSelectedUser_ServerValidate">
</asp:CustomValidator>
<asp:Panel ID="pSearchExisting" runat="server"
    Height="120px"
    ScrollBars="Vertical">
    <asp:GridView ID="gvSearchExisting" runat="server"
        AutoGenerateColumns="false"
        DataKeyNames="UniqueID"
        EmptyDataText="No users found from your search."
        Width="95%">
        <AlternatingRowStyle CssClass="GridViewAlternatingRow" />
        <HeaderStyle CssClass="GridViewHeader" />
        <SelectedRowStyle CssClass="GridViewSelectedRow" />
        <Columns>
            <asp:CommandField ShowSelectButton="True" />
            <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" SortExpression="EmployeeID" />
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="UserID" HeaderText="User ID" SortExpression="UserID" />
        </Columns>
    </asp:GridView>
</asp:Panel>
  CustomValidator用于确保用户在继续之前选择搜索结果,并且仅阻止用户进入下一个向导步骤(如果他们不这样做)。 
protected void cvSelectedUser_ServerValidate(object sender, ServerValidateEventArgs e)
{
    e.IsValid = true;
    if (gvSearchExisting.SelectedIndex == -1)
        e.IsValid = false;
}
这在向导事件中得到确认。
protected void wUserID_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
    if (Page.IsValid == false)
        return;
    // process navigation
}
  在IE9(唯一)中发生的奇怪之处在于,如果您单击向导上的下一步按钮,并且没有从GridView选择记录,它将阻止您进入下一步,但CustomValidator错误消息不是'显示。 
用户可以继续点击,并且不显示错误消息。 但奇怪的是,如果您单击该页面,失去“下一步”按钮的焦点,然后再次单击“下一步”按钮,它将显示错误消息。
为了让它更加麻烦,这可以在Chrome,Firefox,IE8等中按预期工作。只是不是IE9。
作为一个回顾
错误消息不会显示在IE9中
在IE9中显示错误消息
任何想法如何解决这个问题?
我通过https://stackoverflow.com/a/12926317/935779找到了一个似乎是黑客攻击的解决方法。 这只是迫使IE9进入兼容模式。 我宁愿一个适当的修复。
<meta http-equiv="X-UA-Compatible" content="IE=IE8" />
