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型である