私はメインのマスターページに次のプレースホルダを持っています。私はいくつかのコンテンツページで自分のニュースコンテンツを複製する必要はないので、単にそのコンテンツを提供しないことを選択し、マスターページはデフォルトを提供する必要があります。マスターページにデフォルトのコンテンツをロードするタイミング
<asp:ContentPlaceHolder ID="SideBarContent" runat="server">
<asp:GridView ID="newsGrid" runat="server" AutoGenerateColumns="false" Width="100%">
<Columns>
<asp:TemplateField>
<ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:ContentPlaceHolder>
次のコードを試すと、newsGridがnullなのでエラーが発生します。私はページライフサイクルの間違った場所でこれをやっていると仮定しますが、正しい場所がどこにあるのかわかりません。
protected void Page_Load(object sender, EventArgs e)
{
Page.Header.DataBind();
if (!IsPostBack)
{
newsGrid.DataSource = _newsService.ListActive();
newsGrid.DataBind();
}
}
あなたのページの裏にあるコードは、あなたのページの1つ、またはマスターページ自体に表示されていますか?私は前者と仮定していますが、私が間違っている場合には答えません。 –
@martin、すべてマスターページからです。 – ProfK
あなたはこれに対してより良い解決策ではないと確信していますか? – Jess