2009-11-30 122 views
0

在ASP.NET中回发有一个非常奇怪的问题。我有页面动态填充Page_Load上的DropdownLists,只有当它不是回发。我还在页面上有几个文本框供用户输入。在iframe中回发丢失项目DropdownList

如果我回发,通过单击提交按钮或通过SelectedIndexChanged事件,文本框保持其值,但下拉列表丢失所有项目 - 但只有当页面通过iFrame加载时。如果我直接加载页面,一切正常。如果我通过iFrame加载它,除下拉菜单外的所有东西都可以使用。

有没有人遇到过这种行为?我不认为它很重要,但我在Windows7,IIS7,ASP.NET 3.5和IE8浏览。 ViewState被启用,这从文本框的值持续显示是显而易见的。 ASP.NET页面位于localhost上托管的WebApp中。包含IFrame标签的页面只是一个虚拟的HTML文件,位于我的桌面上进行测试。这可能只是一个IE安全问题?

更新: 我其实只是将“虚拟”容器页面移动到Webapp中,即使通过iFrame它似乎也能正常工作。尽管如此,我想知道为什么会发生这种情况,如果包含页面在Webapp之外,因为我打算让人们通过其他域加载页面和iFrame ..

回答

1

这可能是一个ViewState问题。 TextBox控件中的值来自发布数据,而不是ViewState,因此不表示它正常工作。

+0

谢谢,我想这只是在IE浏览器中奇怪的securit设置,当试图通过像c:\ etc \ etc \ test.html这样具有嵌套iFrame的本地文件来做到这一点时。如果我将该文件放入任何合法网站并通过正确的http:// url加载,它就可以工作。 奇怪。 – WesleyJohnson 2009-11-30 21:09:53

+0

+1 ViewState上的信息,顺便说一句。我也刚刚投票结束这个问题。 – WesleyJohnson 2009-11-30 21:10:45