Page.EnableViewState プロパティ
現在のページ要求が終了したとき、ページがそのビューステート、および格納しているサーバー コントロールのビューステートを維持するかどうかを示す値を取得または設定します。
名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文
'宣言
Public Overrides Property EnableViewState As Boolean
'使用
Dim instance As Page
Dim value As Boolean
value = instance.EnableViewState
instance.EnableViewState = value
public override bool EnableViewState { get; set; }
public:
virtual property bool EnableViewState {
bool get () override;
void set (bool value) override;
}
/** @property */
public boolean get_EnableViewState ()
/** @property */
public void set_EnableViewState (boolean value)
public override function get EnableViewState () : boolean
public override function set EnableViewState (value : boolean)
適用できません。
プロパティ値
ページがビューステートを維持する場合は true。それ以外の場合は false。既定値は true です。
解説
ASP.NET によって使用されるページには、ポストバックを検出することを目的として、EnableViewState が false の場合でも読み込まれる非表示のビューステート フィールドが存在する場合があります。
使用例
ページの読み込み時に、EnableViewState プロパティを false に設定するコード例を次に示します。このように設定すると Page オブジェクトのビューステートが無効になります。つまり、ページのビューステート情報もページ内のコントロールも保存されません。
セキュリティに関するメモ : |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。詳細については、「スクリプトによる攻略の概要」を参照してください。 |
Public Class WebPage
Inherits System.Web.UI.Page
Private myFormObj As MyForm
Private label1 As Label
Private label2 As Label
Private textBoxObj As TextBox
Private buttonObj As Button
Public Sub New()
AddHandler Page.Init, AddressOf Page_Init
End Sub 'New
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Comment the following line to maintain page view state.
Page.EnableViewState = false
myFormObj.Method = "post"
Controls.Add(myFormObj)
textBoxObj.Text = "Welcome to .NET"
label1.Text = "Enter a name"
buttonObj.Text = "ClickMe"
AddHandler buttonObj.Click, AddressOf Button_Click
myFormObj.Controls.Add(label1)
myFormObj.Controls.Add(textBoxObj)
myFormObj.Controls.Add(buttonObj)
myFormObj.Controls.Add(label2)
End Sub 'Page_Load
Private Sub Button_Click(sender As Object, e As EventArgs)
Dim temp As [String] = "<br>Name is " + textBoxObj.Text + "<br>"
temp += "Saved content of previous page is " + CType(ViewState("name"), String)
label2.Text = temp
End Sub 'Button_Click
Protected Overrides Sub LoadViewState(viewState As Object)
If Not (viewState Is Nothing) Then
MyBase.LoadViewState(viewState)
End If
End Sub 'LoadViewState
Protected Overrides Function SaveViewState() As Object
ViewState("name") = textBoxObj.Text
Return MyBase.SaveViewState()
End Function 'SaveViewState
Private Sub Page_Init(sender As Object, e As EventArgs)
AddHandler Me.Load, AddressOf Me.Page_Load
myFormObj = New MyForm()
label1 = New Label()
label2 = New Label()
textBoxObj = New TextBox()
buttonObj = New Button()
End Sub 'Page_Init
End Class 'WebPage
public class WebPage : Page
{
private MyForm myFormObj;
private Label label1;
private Label label2;
private TextBox textBoxObj;
private Button buttonObj;
public WebPage()
{
Page.Init += new System.EventHandler(Page_Init);
}
private void Page_Load(object sender, System.EventArgs e)
{
// Comment the following line to maintain page view state.
Page.EnableViewState = false;
myFormObj.Method = "post";
Controls.Add(myFormObj);
textBoxObj.Text = "Welcome to .NET";
label1.Text = "Enter a name";
buttonObj.Text = "ClickMe";
buttonObj.Click += new EventHandler(Button_Click);
myFormObj.Controls.Add(label1);
myFormObj.Controls.Add(textBoxObj);
myFormObj.Controls.Add(buttonObj);
myFormObj.Controls.Add(label2);
}
private void Button_Click(object sender, EventArgs e)
{
String temp = "<br>Name is " + textBoxObj.Text + "<br>";
temp += "Saved content of previous page is " + ViewState["name"] as String;
label2.Text = temp;
}
protected override void LoadViewState(object viewState)
{
if(viewState != null)
base.LoadViewState(viewState);
}
protected override object SaveViewState()
{
ViewState["name"] = textBoxObj.Text;
return base.SaveViewState();
}
private void Page_Init(object sender, EventArgs e)
{
this.Load += new System.EventHandler(this.Page_Load);
myFormObj = new MyForm();
label1 = new Label();
label2 = new Label();
textBoxObj = new TextBox();
buttonObj = new Button();
}
};
public class WebPage extends Page
{
private MyForm myFormObj;
private Label label1;
private Label label2;
private TextBox textBoxObj;
private Button buttonObj;
public WebPage()
{
get_Page().add_Init(new System.EventHandler(Page_Init));
} //WebPage
private void Page_Load(Object sender, System.EventArgs e)
{
// Comment the following line to maintain page view state.
get_Page().set_EnableViewState(false);
myFormObj.set_Method("post");
get_Controls().Add(myFormObj);
textBoxObj.set_Text("Welcome to .NET");
label1.set_Text("Enter a name");
buttonObj.set_Text("ClickMe");
buttonObj.add_Click(new EventHandler(Button_Click));
myFormObj.get_Controls().Add(label1);
myFormObj.get_Controls().Add(textBoxObj);
myFormObj.get_Controls().Add(buttonObj);
myFormObj.get_Controls().Add(label2);
} //Page_Load
private void Button_Click(Object sender, EventArgs e)
{
String temp = "<br>Name is " + textBoxObj.get_Text() + "<br>";
temp += "Saved content of previous page is "
+ get_ViewState().get_Item("name");
label2.set_Text(temp);
} //Button_Click
protected void LoadViewState(Object viewState)
{
if (viewState != null) {
super.LoadViewState(viewState);
}
} //LoadViewState
protected Object SaveViewState()
{
get_ViewState().set_Item("name", textBoxObj.get_Text());
return super.SaveViewState();
} //SaveViewState
private void Page_Init(Object sender, EventArgs e)
{
this.add_Load(new System.EventHandler(this.Page_Load));
myFormObj = new MyForm();
label1 = new Label();
label2 = new Label();
textBoxObj = new TextBox();
buttonObj = new Button();
} //Page_Init
} //WebPage
プラットフォーム
Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition
Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。
バージョン情報
.NET Framework
サポート対象 : 3.0,2.0,1.1,1.0