ASP.NET, ファイル関連

ファイルの作成日時、更新日時、アクセス日時の取得をする方法について。
ファイルの日時取得には「System.IO.File」を使う。

DateTime create_time;
DateTime update_time;
DateTime access_time;
//作成日時を取得する
create_time = System.IO.File.GetCreationTime(strFile);
//更新日時を取得する
update_time = System.IO.File.GetLastWriteTime(strFile);
//アクセス日時を取得する
access_time = System.IO.File.GetLastAccessTime(strFile);

もし、ディレクトリの作成日時、更新日時、アクセス日時を取得したい場合には、
「System.IO.Direcrory」を使う。

DateTime create_time;
DateTime update_time;
DateTime access_time;
//作成日時を取得する
create_time = System.IO.Direcrory.GetCreationTime(strFile);
//更新日時を取得する
update_time = System.IO.Direcrory.GetLastWriteTime(strFile);
//アクセス日時を取得する
access_time = System.IO.Direcrory.GetLastAccessTime(strFile);

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

バージョン:ASP.NET 3.5
ASP.NETの「DataPager」で ページのサイズを選んで変更できるようにする方法。
変更は、ListView の上に、ドロップダウンリストを配置して、表示件数を選ぶことが
できるようにする。
ドロップダウンリストは、AutoPostBack を true に設定し、
OnTextChangedイベントで、DataPagerのページサイズを変更する。
—————————————————————————–
ContactsDataPager.SetPageProperties(startRowIndex,maximumRows ,databind );
startRowIndex :表示される最初のレコードのインデックス。
maximumRows :1 つのデータ ページに表示する項目の最大数。
databind :プロパティの設定後にコントロールをバインドするかどうか。
—————————————————————————–
●Default.aspx

<asp:DropDownListID="page_size"runat="server"OnTextChanged="on_page_size"AutoPostBack="true">
	<asp:ListItemValue="10″>10件</asp:ListItem>
	<asp:ListItemValue="20″>20件</asp:ListItem>
	<asp:ListItemValue="30″>30件</asp:ListItem>
	<asp:ListItemValue="40″>40件</asp:ListItem>
</asp:DropDownList>
<asp:ListViewID="ListView1" runat="server"
	OnItemDataBound="ItemDataBound" DataSourceID="ObjectDataSource">
	<LayoutTemplate>
		<asp:DataPager ID="ContactsDataPager"runat="server"PageSize="5″>
			<Fields>
				<asp:NextPreviousPagerField 
					ShowFirstPageButton="True"
					ShowLastPageButton="False"
					ShowNextPageButton="False"
					ShowPreviousPageButton="True"
					RenderDisabledButtonsAsLabels="true" 
					ButtonCssClass=""/>
				<asp:NumericPagerField ButtonCount="5″/>
				<asp:NextPreviousPagerField 
					ShowFirstPageButton="False" 
					ShowLastPageButton="True"
					ShowNextPageButton="True"ShowPreviousPageButton="False"
					RenderDisabledButtonsAsLabels="true"
					ButtonCssClass=""/>
			</Fields>
		</asp:DataPager>
		<table>
			<asp:PlaceHolderID="groupPlaceholder"runat="server"/>
		</table>
	</LayoutTemplate>
	<GroupTemplate>
		<tr>
		<asp:PlaceHolderrunat="server"ID="itemPlaceholder"/>
		</tr>
	</GroupTemplate>
	<ItemTemplate>
		<td>
		ここに何か表示する
		</td>
	</ItemTemplate>
</asp:ListView>

●Default.aspx.cs

public void on_page_size(Object sender, EventArgs e)
{
	int value = int.Parse(((DropDownList)sender).SelectedValue);
	ContactsDataPager.SetPageProperties(0, value,true);
}

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ユーザーコントロール間でのデータやりとりの時にはまった。。

ASP.NET, 未分類

このブログはASP.NETの情報を更新しているブログです。
よろしくお願いいたします。