ASP.NET, クライアントの情報

バージョン:ASP.NET 3.5
クライアントのDNS名は

Request.UserHostName

で取得できる。

ASP.NET, ASP.NET全般

バージョン:ASP.NET 3.5
javascriptでのクライアントID取得について。
ASP.NETで定義したIDは、実行時には長いIDになってしまう。
実行時のIDが変わってしまうと、JavaScriptを利用する場合に
IDがわからないので困る。
[ASP.NETのID].ClientID
で実行時のIDを取得できる。
さらにJavaScriptの「getElementById」で、
ドキュメントにある特定のIDを持つオブジェクトを取得できるので、
下記のようにで取得する。
▽JavaScript(ASP.NETのIDがtestの場合)

var test_element = document.getElementById("< %= test.ClientID %>”)

ASP.NET, ASP.NET全般

バージョン:ASP.NET 3.5
ASP.NETと「C#、VB.NET、J#」は何が違うのか?
ASP.NETはWebサイト、Webアプリを作るための仕組み(機能)で、
「C#、VB.NET、J#」は言語だという。
CGIという機能に対して、PerlやCなどの言語があるのと同じ事みたい。

ASP.NET, ASP.NET全般

バージョン:ASP.NET 3.5
Webサイト形式とWebアプリケーション形式の違いは?
ASP.NETを勉強する際に悩んだところ。
新規に作成する時にどちらかを選べる。
違いは、
Webサイト形式はWebアプリだけを作れる。
Webアプリケーション形式はライブラリなどWebアプリではないものも作れる。
ビルド方法が若干違う。
デフォルトのソリューションファイル保存先が違う。
[My Document]\visual studio 2008\WebSites
[My Document]\visual studio 2008\Projects
などがあるが、
違いはそんなにないらしい。

ASP.NET, ASP.NET全般

バージョン:ASP.NET 3.5
LinkButtonとHyperLinkの違いについて。
ASP.NETで開発を始めてしばらくは、 LinkButtonのみを使っていました。
しかし、ちゃんとした違いがあるみたいなので
使い分けることにしてます。
●LinkButton
見た目は、HyperLinkと同じ。機能は、Buttonコントロールと同じ。
サーバー側でイベントを発生させてたい時に使う。
●HyperLinkについて
サーバ側でイベントを発生せずに、Web ページにリンクする場合に使う。

ASP.NET, コントロール関連

バージョン:ASP.NET 3.5
AutoPostBackとは、DropDownListやCheckBox、RadioButtonなどのコントロールに、
「AutoPostBack=true」が設定されている場合、項目の選んだ場合や、チェックをつけた場合、外した場合などに
サーバへ処理を送信したい場合に使う。
下記は、DropDownListを「AutoPostBack=true」に設定し、
どの項目を選んだかをLabel1に表示している。
●Default.aspx

<html>
<head runat="server">
	<title></title>
</head>
<body>
	<form id="form1″ runat="server">
		<div>
			<asp:DropDownList ID="DropDownList1″runat="server" 
				AutoPostBack="true" OnSelectedIndexChanged="on_changed">
			<asp:ListItem>aaa</asp:ListItem>
			<asp:ListItem>bbb</asp:ListItem>
			<asp:ListItem>ccc</asp:ListItem>
			</asp:DropDownList>
			<br />
			<asp:Label ID="Label1" runat="server" ></asp:Label>
		</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 Default6 : System.Web.UI.Page
{
	protected void Page_Load(object sender, EventArgs e)
	{
	}
	protected void on_changed(object sender, EventArgs e)
	{
		Label1.Text = ((DropDownList)sender).SelectedItem.Text 
					+ "が選択されました。";
	}
}

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

バージョン:ASP.NET 3.5
ListViewのデータグループ化機能について。
データセット内の n要素ごとに周囲の HTML を指定したい場合は、
ListView の GroupItemCount プロパティを指定する。
例えば下記のように、「アイテム4つごとに<tr><tr/>で囲いたい」
などの場合にGroupItemCount プロパティを指定すると
実現できる。
・作りたいHTML

<table >
	<tr>
		<td>アイテム1</td>
		<td>アイテム2</td>
		<td>アイテム3</td>
		<td>アイテム4</td>
	</tr>
	<tr>
		<td>アイテム5</td>
		<td>アイテム6</td>
		<td>アイテム7</td>
		<td>アイテム8</td>
	</tr>
	<tr>
		<td>アイテム9</td>
		<td>アイテム10</td>
		<td>アイテム11</td>
		<td>アイテム12</td>
	</tr>
</table>
アイテム1 アイテム2 アイテム3 アイテム4
アイテム5 アイテム6 アイテム7 アイテム8
アイテム9 アイテム10 アイテム11 アイテム12

・ASP.NETコード

<asp:ListView ID=”ListView1″ runat=”server”  ” DataSourceID=”DataSource1″
GroupItemCount=”4″ >
	<LayoutTemplate>
		<table>
			<asp:PlaceHolder ID=”Placeholder1″ runat=”server” />
		</table>
	</LayoutTemplate>
	<GroupTemplate>
		<tr>
			<asp:PlaceHolder runat=”server” ID=”Placeholder2″ />
		</tr>
	</GroupTemplate>
	<ItemTemplate>
		<td>
			movie_id:
			<asp:Label ID=”Label1″ runat=”server”  /> <br />
			<asp:Label ID=”Label2″ runat=”server” /> <br />
		</td>
	</ItemTemplate>
</asp:ListView>

ASP.NET, ASP.NET全般

バージョン:ASP.NET 3.5
ユーザを偽装するには、ASP.NET の Web.config にsystem.web 要素に identityを設定する。

<configuration>
	<system.web>
		<identity impersonate="true">
		</identity>
	</system.web>
</configuration>

または、ユーザ名とパスワードを固定することも可能。

<configuration>
	<system.web>
		<identity impersonate="true" password="pass" username="name">
		</identity>
	</system.web>
</configuration>

ファイルの存在チェックなどアクセス権が絡むときに使用する。
ASP.NET の偽装
http://msdn.microsoft.com/ja-jp/library/xh507fc5(VS.80).aspx

ASP.NET, ファイル関連

バージョン:ASP.NET 3.5
ASP.NET C#でファイルの存在を確認するには、
System.IO.File.Exists を使用する。
下記でファイルの存在を確認し、ファイルが見つかった場合と見つからなかった場合の
処理をそれぞれ記載する。

if (!System.IO.File.Exists(@”C:\test.txt”))
{
	//ファイルが見つからなかった場合の処理
}
else
{
	//ファイルが見つかった場合の処理
}

※ファイルの読み取り権限が無かった場合はファイルがあっても、「false」が返ってくるので注意が必要です。

ASP.NET, ファイル関連

バージョン:ASP.NET 3.5
今回はファイルの作成日時、更新日時、アクセス日時の取得ではなく、
設定をする方法について。
取得の時と同様に、
ファイルの場合は、「System.IO.File」で、
ディレクトリの場合は、「System.IO.Direcrory」で設定できる。
●作成日時、更新日時、アクセス日時をそれぞれ10日前に戻す

string file_path = Server.MapPath("aaa.txt");
/****ファイルの場合********************************************************/
//作成日時の設定
System.IO.File.SetCreationTime(file_path, dtFileCreateTime.AddDays(-10));
//更新日時の設定
System.IO.File.SetLastWriteTime(file_path, dtFileCreateTime.AddDays(-10));
//アクセス日時の設定
System.IO.File.SetLastAccessTime(file_path, dtFileCreateTime.AddDays(-10));
/**************************************************************************/
/***ディレクトリの場合******************************************************/
//作成日時の設定
System.IO.Direcrory.SetCreationTime(file_path, dtFileCreateTime.AddDays(-10));
//更新日時の設定
System.IO.Direcrory.SetLastWriteTime(file_path, dtFileCreateTime.AddDays(-10));
//アクセス日時の設定
System.IO.Direcrory.SetLastAccessTime(file_path, dtFileCreateTime.AddDays(-10));
/**************************************************************************/