ASP.NET

ASP.NET

ASP.NET Web Forms ASPX構文、イベントドリブン

ASP.NET MVC ASPX構文やRazor構文

ASP.NET Web Pages Razor構文

★情報を保存するオブジェクト

★ASP.NET 処理の流れ

HttpRequest-->inetinfo.exe->ASPNET_ISAPI.DLL-->Http Pipeline-->ASPNET_WP.EXE-->

HttpRuntime-->HttpApplication Factory-->HttpApplication-->

HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()

★Global.asax

Application_Start

Application_BeginRquest

Application_AuthenticateRequest

Session_Start

Application_EndRequest

Session_End

Application_End

Application_Error

★Application, Page and Control events(ASP.NET v2.0)

Application: BeginRequest

Application: PreAuthenticateRequest

Application: AuthenticateRequest

Application: PostAuthenticateRequest

Application: PreAuthorizeRequest

Application: AuthorizeRequest

Application: PostAuthorizeRequest

Application: PreResolveRequestCache

Application: ResolveRequestCache

Application: PostResolveRequestCache

Application: PreMapRequestHandler

Page: Construct

Application: PostMapRequestHandler

Application: PreAcquireRequestState

Application: AcquireRequestState

Application: PostAcquireRequestState

Application: PreRequestHandlerExecute

Page: AddParsedSubObject

Page: CreateControlCollection

Page: AddedControl

Page: AddParsedSubObject

Page: AddedControl

Page: ResolveAdapter

Page: DeterminePostBackMode

Page: PreInit

Control: ResolveAdapter

Control: Init

Control: TrackViewState

Page: Init

Page: TrackViewState

Page: InitComplete

Page: LoadPageStateFromPersistenceMedium

Control: LoadViewState

Page: EnsureChildControls

Page: CreateChildControls

Page: PreLoad

Page: Load

Control: DataBind

Control: Load

Page: EnsureChildControls

Page: LoadComplete

Page: EnsureChildControls

Page: PreRender

Control: EnsureChildControls

Control: PreRender

Page: PreRenderComplete

Page: SaveViewState

Control: SaveViewState

Page: SaveViewState

Control: SaveViewState

Page: SavePageStateToPersistenceMedium

Page: SaveStateComplete

Page: CreateHtmlTextWriter

Page: RenderControl

Page: Render

Page: RenderChildren

Control: RenderControl

Page: VerifyRenderingInServerForm

Page: CreateHtmlTextWriter

Control: Unload

Control: Dispose

Page: Unload

Page: Dispose

Application: PostRequestHandlerExecute

Application: PreReleaseRequestState

Application: ReleaseRequestState

Application: PostReleaseRequestState

Application: PreUpdateRequestCache

Application: UpdateRequestCache

Application: PostUpdateRequestCache

Application: EndRequest

Application: PreSendRequestHeaders

Application: PreSendRequestContent

★コントロール注意点

<asp:Radiobutton ID="radioButton1" AutoPostBack="true" runat="server" Text="選択1" GroupName="Content" Checked="True" OnCheckedChanged="radioButton1_CheckedChanged">

Checkedを設定すると、画面初期時にOnCheckedChangedは発生できない。

★ポストバック後にスクロールの位置を保持

※スクロールをさせない方法がわからない、残念。

方法1(cs側)

Page.MaintainScrollPositionOnPostBack = true;

方法2(aspx側)

<%@ Page MaintainScrollPositionOnPostBack="true" ... %>

★<% %>について

1.コード

<%

Reaponse.Write("xxx");

%>

2.データバインド(DataBind()で実行)

<%# DataBinder.Eval(Container.DataItem, "ID").ToString()%>

<%# Container.DataItem("ID") %>

<%# hidden.Value%>

<%# Eval("Name") %> 読み取り専用

<%# Bind("Name") %> 更新可能

3.値表示

<%= Page.IsPostBack %>

*.aspx <%= name%>

*.cs public string name = "xxx";

4.名前空間など

<%@ Page %>

<%@ Assembly %>

<%@ Import %>

<%@ MasterType %>

<%@ OutputCache %>

<%@ PreviousPageType %>

<%@ Reference %>

<%@ Register %>

5.リソース

<asp:Label ID="lbl" runat="server" Text="<%$ Resources:TestSite, TotalAmount %>"></asp:Label>

6.ASP.NET MVCのViewData

<%: ViewData["Message"] %>

7.コメント

<%-- コメント --%> HTMLに出力しない

<!-- コメント --> HTMLに出力する

★OnClickとOnClientClick

OnClick Buttonのイベント(サーバ側)

OnClientClick Buttonの属性(クライアント側)

<asp:Button runat="server" ID="btn1" Text="テスト1" onclick="btn_Click" OnClientClick="return window.clickBtn()"/>

或いは

<asp:Button runat="server" ID="btn2" Text="テスト2" onclick="btn_Click" OnClientClick="return confirm('Are you sure?')"/>

<script type="text/javascript">

function clickBtn() {

// do something(validationなど)

return confirm("Are you sure?");

}

</script>

※OnClientClickに書いたJavaScriptコードの戻り値は必ずbool型である