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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<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

1
2
3
4
5
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
マルチラインのテキストボックスで、ラベルにコピーする際に「改行」も
反映する方法について。

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ 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">
<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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ 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">
<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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ 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">
<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
・値をセットする場合

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

・値を取得する場合

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

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

1
2
3
4
(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の情報を更新しているブログです。
よろしくお願いいたします。