ASP.NET, データアクセス・コントロール

バージョン:ASP.NET 3.5
データアクセス・コントロールとは、データベースから取得したデータを便利に表示できるコントロールのこと。
以下、種類と機能について。

種類 ページング ソート HTML出力
Repeate できない できない テンプレートに書いたHTMLを表示
DataList できない できない タグが自動生成される
GridVie できる できる タグが自動生成される
ListView できる できる テンプレートに書いたHTMLを表示

デザイン(HTMLタグ)は自分で作成したいなら、
RepeateかListViewを使用すれば良いと思う。
使い分けは、ページング、ソートを行いたいページはListViewを使用する。
必要ないならRepeateが良い。Repeateは、書き方が簡単なのでわかりやすい。

ASP.NET, テキストボックス

バージョン:ASP.NET 3.5
マルチラインのテキストボックスで、ラベルにコピーする際に「改行」も
反映する方法について。

Label1.Text = TextBox1.Text.Replace(“\r\n”, “<br/>”);

で、テキストボックスの改行を<br/>タグに変換する。
※テキストボックスからラベルにコピーする方法は、下記にも記載してあります。
【ASP.NET】ボタンのイベント処理
●Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
	<title></title>
</head>
<body>
	<form id="form1″ runat="server">
		<div>
			<asp:TextBox ID="TextBox1″runat="server" TextMode="MultiLine" >
			</asp:TextBox>
			<br />
			<asp:Label ID="Label1″runat="server">
			</asp:Label>
			<br />
			<asp:Button ID="Button1″ runat="server"
					 Text="Button" OnClick="On_Button1″ />
		</div>
	</form>
</body>
</html>

●Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
	protected void Page_Load(object sender, EventArgs e)
	{
	}
	protected void On_Button1(object sender, EventArgs e)
	{
		Label1.Text = TextBox1.Text.Replace(“\r\n”, “<br/>”);
	}
}

ASP.NET, ボタン

バージョン:ASP.NET 3.5
ボタンのイベント処理について。
ボタンを押したら、テキストボックスの文字をラベルにコピーする。

1.「Default.aspx」にTextBox 、Label、Button を追加する。
2. ButtonにOnClick=”On_Button1″を追加する。
3.「Default.aspx.cs」 に2で追加したOn_Button1を追加する。
4. Label1.Text = TextBox1.Text;でテキストボックスの文字をラベルにコピーする。

●Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
	<title></title>
</head>
<body>
	<form id="form1″ runat="server">
		<div>
			<asp:TextBox ID="TextBox1″ runat="server" ></asp:TextBox><br />
			<asp:Label ID="Label1″ runat="server"></asp:Label><br />
			<asp:Button ID="Button1″ runat="server" Text="Button" OnClick="On_Button1″ />
		</div>
	</form>
</body>

●Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
	protected void Page_Load(object sender, EventArgs e)
	{
	}
	protected void On_Button1(object sender, EventArgs e)
	{
		Label1.Text = TextBox1.Text;
	}
}

ASP.NET, テキストボックス

バージョン:ASP.NET 3.5
テキストボックスの種類(モード)は、「SingleLine」、「Password」、「MultiLine」の3種類。
MaxLengthで文字数を制限できるが、MultiLineは設定されても無視される。
●Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
	<title></title>
</head>
<body>
	<form id="form1" runat="server">
		<div>
			<%? 普通のテキストボックス ?%>
			<asp:TextBox ID="TextBox1" runat="server" TextMode="SingleLine"></asp:TextBox><br />
			<%? パスワード ?%>
			<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
			<%? マルチライン ?%>
			<asp:TextBox ID="TextBox3" runat="server" TextMode="MultiLine"></asp:TextBox><br />
		</div>
	</form>
</body>
</html>

ASP.NET, ASP.NET全般

バージョン:ASP.NET 3.5
・値をセットする場合

(Page.Master.FindControl(“TextBox1″) as TextBox).Text = “あいうえお”;

・値を取得する場合

String test = (Page.Master.FindControl(“TextBox1″) as TextBox).Text;

・入れ子になったマスターページの場合

(Master.Master.FindControl(“ContentPlaceHolder1″)
	.FindControl(“TextBox1″) as TextBox).Text = “なんとか”;
((TextBox)Master.Master.FindControl(“ContentPlaceHolder1″)
	.FindControl(“TextBox1″) ).Text = “なんとか”;

ASP.NET, ASP.NET全般

バージョン:ASP.NET 3.5
ASP.NETのページイベントは以下の順序で発生するようです。

1.Page_PreInit(初期化前)
2.Page_Init(初期化)
3.Page_Load(メイン)
4.クリックなどのイベント(OnClickなど)
5.Page_PreRender(描画前)

サーバ・コントロールの状態復元は2と3の間かな…??
Webユーザーコントロール間でのデータやりとりの時にはまった。。