ASPを使用する.NETサーバコントロール

32226 ワード

サーバコントロールの概要


テキストボックスのコントロールを例にとります.
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

コントロールコードには、次のような特徴があります.
  • コントロール名の前にasp:プレフィックス
  • があります.
  • ID特性は、ページを一意に識別するためのコントロール
  • である.
  • の強制的なrunat特性は、このコントロールがサーバ上で生存していることを示すために使用される.

  • ツール|オプション|テキストエディタ|HTML|フォーマット|タグ専用オプションを使用して、各タグのデフォルトの閉じた動作を制御できます.

    試してみる:サーバーコントロールを使用する

  • ControlsDemoという名前の新しいWebフォームを作成します.aspx
  • formのdivブロックにTextBox、Button、Labelコントロールを追加し、そのプロパティを設定します.最終コードは次のとおりです:
        <div>
    
        Your name
    
            <asp:TextBox ID="YourName" runat="server"></asp:TextBox>
    
            <asp:Button ID="SubmitButton" runat="server" Text="Submit Information" />
    
            <br />
    
            <asp:Label ID="Label1" runat="server"></asp:Label>
    
        
    
        </div>
    
    
  • Buttonコントロールにコードを追加
        Protected Sub SubmitButton_Click(sender As Object, e As EventArgs) Handles SubmitButton.Click
    
            Label1.Text = String.Format("Your name is {0}", YourName.Text)
    
        End Sub
    
    
  • すべての変更を保存し、ブラウザでページを開きます.
  • ページのソースコードを表示します.
  • ページに戻り、名前を入力し、コミットを押してソースコードを再度表示します.

  • さぎょうげんり
  • asp.Netサーバのコントロールは、サーバ上のaspxページに生存する、このページでは、コントロールはasp.Netライブラリ処理を実行します.
  • 各サーバコントロールには対応するhtml表示があります.この例では、Labelコントロールはspan要素に対応し、テキストボックスコントロールはに対応し、ボタンは最終的に
  • と表示される.
  • ボタンをクリックすると、コントロールは返信を開始し、ページ内のコントロールの情報をサーバに送信し、サーバは再びページをロードし、ボタンのクリックイベントハンドラを実行する.

  • ASP.NETサーバコントロールの詳細


    ページでのコントロールの定義


    複数の方法でコントロールをページに追加できます.
  • コントロールをデザインビュー
  • にドラッグ
  • ソースビュー調整フラグの位置
  • ソースビューに直接タグ
  • を入力.
  • プロパティパネルによるコントロールプロパティの変更
  • すべてのコントロールの共通プロパティ


    カテゴリ
    名前
    説明
    その他
    id
    ページ内の一意の識別コントロール
    -
    runat
    常に「server」
    レイアウト
    height
     
     
    width
     
    動作
    enabled
     
     
    visible
     
     
    tooltip
    ツールチップの定義
     
    clientidmode
     
    アクセス性
    accesskey
    キーボードショートカットの定義
     
    tabindex
    切り替え順序の定義
    外観
    backcolor
     
     
    forecolor
     
     
    bordercolor
     
     
    borderstyle
     
     
    borderwidth
     
     
    cssclass
    html classプロパティに対応

    コントロールの種類


    標準コントロール


    単純なコントロール


    textbox,button,label,hyperlink,radiobutton,checkboxを含む

    リストコントロール


    listbox,dropdownlist,checkboxlist,radiobuttonlist,bulletedlistを含む
    リストコントロールを使用してみてください
  • ListControlsという名前のaspxのWebフォーム
  • ページにDropDownList、CheckBox List、ボタン、labelコントロールを追加します.labelの前に適切なスペースを追加します.
        <div>
    
            <asp:DropDownList ID="DropDownList1" runat="server">
    
                <asp:ListItem>C#</asp:ListItem>
    
                <asp:ListItem>Visual Basic</asp:ListItem>
    
                <asp:ListItem>CSS</asp:ListItem>
    
            </asp:DropDownList>
    
            <asp:CheckBoxList ID="CheckBoxList1" runat="server">
    
                <asp:ListItem>C#</asp:ListItem>
    
                <asp:ListItem>Visual Basic</asp:ListItem>
    
                <asp:ListItem>CSS</asp:ListItem>
    
            </asp:CheckBoxList>
    
            <asp:Button ID="Button1" runat="server" Text="Button" />
    
            <br />
    
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    
        </div>
    
    
  • ボタンにクリックイベントを追加します.
        Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Label1.Text = "In the DDL you selected " & DropDownList1.SelectedValue & "<br />"
    
            For Each item As ListItem In CheckBoxList1.Items
    
                If item.Selected Then
    
                    Label1.Text &= "In the CBL you selected " & item.Value & "<br />"
    
                End If
    
            Next
    
        End Sub
    
    
  • ページに対するすべての変更を保存し、ブラウザで要求します.

  • さぎょうげんり
    要素にはValue特性があり、省略するとValueはその要素のhtmlテキスト値に等しい.

    コンテナコントロール


    Panel,PlaceHolder,MultiView,Wizardなど
    Panelコントロールは
    タグとして表示され、含まれているすべてのコントロールやその他のコンテンツに簡単にアクセスできます.
    パネルコントロールを使ってみてください
  • 新しいContainersという名前です.aspxのWebフォーム.
  • formのdivにcheckboxとpanelコントロールを追加します.最終コードは次のとおりです:
        <div>
    
            <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" Text="Show Panel" />
    
            <asp:Panel ID="Panel1" runat="server" Visible="False">
    
                I am visible now.
    
            </asp:Panel>
    
        </div>
    
    
  • checkboxにcheckedchangedイベントハンドラを追加します.
        Protected Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    
            Panel1.Visible = CheckBox1.Checked
    
        End Sub
    
    
  • 変更を保存し、ブラウザで表示します.ページのhtmlファイルを見て、id='Panel 1'によってpanelがdivとして表示されていることがわかります.

  • さぎょうげんり
    PanelコントロールのVisibleプロパティはFalseで、コントロールがサーバ上で表示されないことを意味します.
    試用ウィザードで使いやすいフォームを作成してみてください
  • はWizardという名前を作成する.aspxのWebフォーム.
  • formのdivにWizardコントロールを追加します.
            <asp:Wizard ID="Wizard1" runat="server" ActiveStepIndex="0" Width="500px">
    
                <WizardSteps>
    
                    <asp:WizardStep runat="server" Title="About You">
    
                        <asp:Label ID="Label1" runat="server" Text="Type your name"></asp:Label>
    
                        <asp:TextBox ID="YourName" runat="server"></asp:TextBox>
    
                    </asp:WizardStep>
    
                    <asp:WizardStep runat="server" Title="Favorite Language" StepType="Finish">
    
                        <asp:DropDownList ID="FavoriteLanguage" runat="server">
    
                            <asp:ListItem>C#</asp:ListItem>
    
                            <asp:ListItem>Visual Basic</asp:ListItem>
    
                            <asp:ListItem>CSS</asp:ListItem>
    
                        </asp:DropDownList>
    
                    </asp:WizardStep>
    
                    <asp:WizardStep runat="server" Title="Ready" StepType="Complete">
    
                        <asp:Label ID="Result" runat="server" Text="Label"></asp:Label>
    
                    </asp:WizardStep>
    
                </WizardSteps>
    
            </asp:Wizard>
    
    
  • ウィザードコントロールのfinishButtonClickにイベント処理関数を追加します.
        Protected Sub Wizard1_FinishButtonClick(sender As Object, e As WizardNavigationEventArgs) Handles Wizard1.FinishButtonClick
    
            Result.Text = "Your name is " & YourName.Text
    
            Result.Text &= "<br />Your favorite language is " & FavoriteLanguage.SelectedValue
    
        End Sub
    
    
  • 変更を保存し、ブラウザで表示します.

  • さぎょうげんり
    Wizardコントロールは、ユーザーの入力を論理に基づいて独立したウィザードページに各部分を表示することができます.その後、Wizardコントロールは、Next、Previous、Finishボタンを自動的に作成することで、すべてのナビゲーションの問題を処理します.ここでは設定が必要です
  • asp:WizardStepのStep Typeプロパティ、最後から2番目のステップはFinish、最後のステップはCompleteです.その他はオートに設定できます.
  • asp:WizardのActiveStepIndexを0に設定し、ウィザードが最初のページを開始することを確認します.
  • ウィザードの最後のステップのfinishボタンをクリックすると、WizardコントロールのFinishButtonClickイベントが起動します.

  • その他の標準コントロール

    htmlコントロール


    データコントロール


    有効性検証コントロール


    ナビゲーションコントロール


    ログインコントロール


    Ajax拡張


    WebParts


    ダイナミックデータ


    ASP.NET状態エンジン


    ステータスエンジンの定義とその重要性


    httpプロトコルは無状態であり、Webサーバは特定のブラウザからのリクエストを追跡せず、Webサーバは以前のリクエストのページを記憶しない.

    ステータスエンジンの動作原理


    ステータスエンジンは、多くのコントロールのステータスを格納できます.
    ASPを分析してみる.NET状態エンジン
    (略)
    さぎょうげんり
    form要素の用途:フォームコントロールをカプセル化するために使用され、これらのコントロールの値がサーバにコミットされます.
    フォームの提出方法は2種類あります.
  • Post:フォームからのすべてのデータが要求されたマスターに追加され、サーバに送信されます.
  • Get:すべてのデータが要求された実際のアドレスの後に添付されます.

  • デフォルトでは、フォームはPostメソッドを使用してサーバにデータを送信し、各Webフォームにはform要素が1つしかありません.
    デフォルトでは、Webフォームは自分、すなわちStateにコミットされます.aspxページのform要素のaction属性はStateである.aspx.
    隠し_VIEWSTATEフィールドは、サーバがフォームコントロールの現在のステータスを追跡するために使用します.
    ASP.NET運転時にASPをロードする.NETページでは、この非表示フィールドにそのページに関する情報が埋め込まれます.

    すべてのコントロールがview stateに依存しているわけではありません


    TextBox,checkbox,radiobutton,dropdowlistを含む多くのコントロールが自分の状態を維持しています

    view stateとパフォーマンスに関する注意点


    パフォーマンスのために不要なview state機能をオフにすることができます.
  • は、ウェブサイトレベルでウェブである.configではのenableViewStateプロパティはfalse
        <pages controlRenderingCompatibilityVersion="4.5" enableViewState="true"/>    
    
      </system.web>
    
    
  • に設定されています.
  • ページレベルでは各ページの上にページ命令を見つけることができ、ページ命令ではEnableView Stateをfalse
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="State.aspx.vb" Inherits="State" EnableViewState="True" %>
    
    
  • に設定することができる.
  • コントロールレベル各コントロールでEnableViewStateをfalse
  • にそれぞれ設定可能
    データ駆動コントロールなどのコントロールのenableViewStateはfalseとして考慮できます.