IE8说使用动态占位符时“无法显示网页”
-
29-09-2019 - |
题
我有一个使用占位符的ASP.NET页面。网格通过编程构建,并在运行页面时添加到该占位符中。例子:
ASPX代码:
<asp:PlaceHolder ID="myPlaceHolder" runat="server" />
背后的代码:
foreach (var country in Tables.Countries())
{
var nGrid = BuildGrid(country.Code);
if (nGrid.Rows.Count > 0)
{
var lTitle = new Literal();
lTitle.Text = "<h2>Stats for country " + country.Name + "</h2>";
myPlaceHolder.Controls.Add(lTitle);
myPlaceHolder.Controls.Add(nGrid);
}
nGrid.Dispose();
}
private GridView BuildGrid(short countryCode)
{
GridView nGrid = new GridView();
nGrid.ID = "gr_" + countryCode;
nGrid.SkinID = "rpSkin";
nGrid.AutoGenerateColumns = false;
nGrid.AllowPaging = false;
nGrid.AllowSorting = false;
nGrid.RowStyle.VerticalAlign = VerticalAlign.Top;
nGrid.EnableViewState = false;
var nField = new BoundField
{
HeaderText = "People",
DataField = "PeopleCount"
};
nGrid.Columns.Add(nField);
// more BoundFields of this type exist
// This is basically the GridViewHelper class that gets Row Totals
// Disabling this doesn't help, either
HelpGrid(nGrid);
nGrid.DataSource = Country.GetPeople(countryCode);
nGrid.DataBind();
return nGrid;
}
此页面在Opera和Firefox中完美无缺。 Internet Explorer 8向我展示了“无法显示网页”屏幕。
有任何想法吗?
解决方案
可以 这是你的问题?
其他提示
当编程创建控件时,您总是会遇到很多问题。它可能会在GET上工作,但在帖子上不行,您在OnClick处理程序等中遇到了问题。
在我看来,这确实不像您绝对需要编程创建这些。您可以像用户控件一样轻松地创建网格控件,然后传递数据源。如果需要的话,您可以在运行时加载用户控件,然后将整个构建电网动态置于零件,然后让ASP.NET照顾混乱。
这并不是说您不能这样做,就像人们一直这样做。我只是建议您为自己的方式做更多的工作,以做更多的工作。
不隶属于 StackOverflow