IE8は、動的なプレースホルダーを使用するときに「Webページを表示できない」と言っています
-
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は、「Webページを表示できない」画面を示しています。
何か案は?
解決
たぶん......だろう これがあなたの問題です?
他のヒント
プログラムでコントロールを作成するとき、あなたは常にたくさんの問題に遭遇するでしょう。 GETで動作する場合がありますが、ポストではなく、オンクリックハンドラーなどに問題があります。プログラマティックコントロールを正しく機能させるためにジャンプしなければならないフープがたくさんあります。
あなたがこれらをプログラム的に作成する必要があるように、それは本当に私には見えません。ユーザーコントロールと同じくらい簡単にグリッドコントロールを作成し、データソースを通過させることができます。必要に応じて、実行時にユーザーコントロールをロードすることができ、ビルドグリッドダイナミクラリーパーツ全体を切り取り、ASP.NETに混乱の世話をさせます。
これは、人々がいつもしているので、あなたがそれをすることができないと言うことではありません。私はあなたがあなたのようにそれをするためにもっと多くの仕事のために自分自身を準備していることを提案しているだけです。
所属していません StackOverflow