我被指派去修复我们的遗留系统中的一些问题,该系统是使用Asp.net 2.0创建的。这个应用程序是为了在IE低版本(v5.0v7.0v9.0)上运行而创建的。
问题是,当我试图点击页面的链接时,它给我的错误是 'WebForm_PostBackOptions' is undefined
. 对于肉眼来说,似乎点击事件根本没有触发,所以,我只能在打开IE的控制台(F12)时才能看到错误。
问题是,在我的本地环境中,甚至在另一个测试环境中也能正常工作。这只发生在我们的Live服务器上,而且只发生在一个页面的一个部分;这让我怀疑是否有任何版本不兼容的问题。
以下是我的相关.aspx和.cs代码。
.aspx
<asp:Repeater Runat="server" ID="rptCustomers">
<ItemTemplate>
<asp:Label Runat="server" ID="lblCustomerID" Visible="False" Text='<%#DataBinder.Eval(Container.DataItem, "id")%>' />
<asp:LinkButton Runat="server" ID="lbtnCustomer" CommandName="SELECT CUSTOMER" Text='<%#DataBinder.Eval(Container.DataItem, "name")%>' /><br>
</ItemTemplate>
</asp:Repeater>
.cs
private void rptCustomers_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if(e.CommandName == "SELECT CUSTOMER")
{
if(((Label)e.Item.FindControl("lblCustomerID")).Text == "")
{
ViewState["Customer"] = Guid.Empty;
}
else
{
ViewState["Customer"] = new Guid(((Label)e.Item.FindControl("lblCustomerID")).Text);
}
RebindData();
}
}
我真的很感激,如果有人能给我一些解决方案,或解释这一点。
好了,我找到了一个答案,如果有一天有人面临同样的问题。这是与服务器IIS有关的,在我添加了标记后 CausesValidation ="false"
到我的代码段,问题得到了解决。