ボックスに情報を表示するウェブサイトを作成中です。 ボックスの組み合わせが異なる複数のページがあります。彼らは共通のボックスをたくさん持っています。 そのため、ボックスをユーザーコントロールとして作成し、別のページに配置します。異なるページは、マスターページも共有します。しかし、2.ボックスの開発を開始するときに問題が発生しました。Page_Load of 2.ユーザーコントロールが実行されない(ウェブサイト)
1.ボックスのPage_Load(またはコード全体)は正常に動作しますが、Page_Loadまたは2.boxは無視されます。これは、aspxファイルをクラッシュさせる多くのnull値になります。
<%@ Page Title="CustType1" Language="C#" MasterPageFile="~/MTCustomer/Master.master" AutoEventWireup="true" CodeFile="CT1.aspx.cs" Inherits="MTCustomer.CT1" %>
// Some HTML
<td ID="column1" style="width: 400px;">
<Box:CustomerInfoBoxAx runat="server" />
<Box:CustomerInfoBoxMt runat="server" />
</td>
// Some HTML
私のWeb.configファイルが含まれ、これはユーザーのために使えるように制御します:
<pages>
<controls>
<add tagPrefix="Box" tagName="InfoBoxA" src="~/Controls/InfoBoxA.ascx" />
<add tagPrefix="Box" tagName="InfoBoxB" src="~/Controls/InfoBoxB.ascx" />
</controls>
</pages>
マイユーザーコントロールAのルックス
私CT1.aspxが、これは2人のユーザーコントロールを使用するために含まれていますligeこの:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="InfoBoxA.ascx.cs" Inherits="Controls.InfoBoxA" %>
<% if (IsVisible("InfoBoxA") && Customer != null)
{ %>
<div>
<%-- Markup --%>
</div>
<% } %>
とボックスBは次のようになります。
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="InfoBoxB.ascx.cs" Inherits="Controls.InfoBoxB" %>
<link rel="stylesheet" type="text/css" href="<%=VirtualPathUtility.ToAbsolute("~/Styles/InfoBoxStyle.css")%>">
<% if (IsVisible("InfoBoxB") && Customer != null)
{ %>
<div>
<%-- Markup --%>
</div>
<% } %>
page.aspxの2つのユーザーコントロールの順序を入れ替えようとしましたが、これもPage_Load(またはコード全体が無視されていました)が無視されました。それに基づいて、最初のコードのみが実行され、残りは無視されるように見えます。
EDIT: 最初のnull参照例外の後に続く例外に従うと、最初のユーザーコントロールのPage.DataBind()がまだ実行中であることがわかります。これは、ボックス1と2の両方のaspxファイルが実行される原因となります。しかし、どうすればこの問題を回避できますか?
2番目のユーザーコントロールがロードされないような例外がスローされますか? Visual Studioで追加の例外監視を有効にする必要があります。 – KSib
もっと多くの例外をオンにした後、私は何かを発見しました。質問のbuttomに編集を追加しました。 – Niksen