ASP.NET メモ

2011年11月20日日曜日 - 投稿者 さい 時刻: 22:06
ASP.NETメモ

・HTMLフォームコントロール
runat="server"を指定

・フォームデータ遷移が、ページ⇔ページではなく
同一ページでデータの読み込み・受け渡しをする。
(postback)

・複数のHTMLコントロールは指定できず、遷移先は全て自身のアドレスを指定

・サーバコントロールは自動管理
自分にポストした情報(何を選択しているか、など)が保管される

・Buttonコントロールで、はじめてPostBackが発生
(やり方によるけど、基本は)

・(bool) IsPostBack関数で、ポストバックか非ポストバックを判断する
※非ポストバックは、いわゆるはじめてページに飛んできたとき
PageInit→状態復元→PageLoad(ここで初期化)
(この状態復元の段階で、リスト値はPageLoadを実行せずとも復元されている)

・コードビハインドは?
vbとasp.netページをわけること。
vbクラスの中に public class CLASSNAME [inherits] System.Web.UI.Pageで指定

【vbコード】
<%@ PAGE LANGUAGE="C#" Inherits="HogeHoge" Src="sample02.aspx.cs" %>
<html>
<body>
<form runat="server">
<asp:TextBox id="textEMail" runat="server"></asp:TextBox>
</form>
</body>
</html>
【ASP.NETページ】
public class HogeHoge : System.Web.UI.Page {
  protected System.Web.UI.WebControls.TextBox textEMail;

  private void Page_Load(object sender, System.EventArgs e) {
    textEMail.Text = "あいうえお";
  }
}

といったよう。

・データバインドとは?

データ「連結」のこと。
→ページデザインからコードにアクセスするための仕組み
書式が<%#  <バインド式>  %>
※この両部分のカッコをデリミタという。

Eval or Bind (コントロールのDataBind()またはPageクラスが呼ばれたときに解決される。
Eval = ReadOnly, Bind = RW ok みたいなもの。

DataBindメソッドを発行するだけで、DataGridコントロールが内部でループ処理をしてくれます。

★ちなみにこれに関数を入れることもできます。

Public Function getHeaader() As String
End Function
<HeaderTemplate>社員ID,アンケート実施日時,<%#getHeaader()%>
↑ヘッダテンプレート内に記述
ただしfunctionじゃないとだめとおもう(値を返す)

<%# FormatForXML(DataBinder.Eval(Container.DataItem, "Title")) %>
※FormatForXMLはstring引数1のオリジナル関数

【デバッグ】
System.Diagnostics.Debug.Write()
System.Diagnostics.Debug.WriteLine()