新しい項目をセッション状態のコレクションに追加します。
名前空間: System.Web.SessionState
アセンブリ: System.Web (system.web.dll 内)
構文
'宣言
Public Sub Add ( _
name As String, _
value As Object _
)
'使用
Dim instance As HttpSessionState
Dim name As String
Dim value As Object
instance.Add(name, value)
public void Add (
string name,
Object value
)
public:
void Add (
String^ name,
Object^ value
)
public void Add (
String name,
Object value
)
public function Add (
name : String,
value : Object
)
適用できません。
パラメータ
- name
セッション状態のコレクションに追加する項目の名前。
- value
セッション状態のコレクションに追加する項目の値。
解説
name パラメータが既存のセッション状態項目を参照する場合、既存の項目が、指定された value によって上書きされます。
使用例
Add メソッドを使用してセッション状態に値を格納し、Remove メソッドを使用してセッション状態の値を削除するコード例を次に示します。Repeater コントロールは、セッション状態の内容を Web ページ上に表示する際に使用されます。GetEnumerator メソッドは、セッション状態のコレクションを反復処理して Repeater コントロールを設定する際に使用されます。
![]() |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。詳細については、「スクリプトによる攻略の概要」を参照してください。 |
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
' If both name and value are specified
' use the Add method to add the item to session-state.
If (Not String.IsNullOrEmpty(TextBox1.Text) And _
Not String.IsNullOrEmpty(TextBox2.Text)) Then
Dim itemName As String = Server.HtmlEncode(TextBox1.Text)
Dim itemValue As String = Server.HtmlEncode(TextBox2.Text)
Session.Add(itemName, itemValue)
' Refresh the Repeater control.
RefreshRepeater()
End If
End Sub
Protected Sub RefreshRepeater()
' Use the GetEnumerator method to
' iterate through the session-state.
Dim values As ArrayList = New ArrayList()
Dim ie As System.Collections.IEnumerator = Session.GetEnumerator()
Dim currentSessionItemName As String
While (ie.MoveNext())
currentSessionItemName = CType(ie.Current, String)
values.Add(New SessionDataDisplay(currentSessionItemName, _
Session(currentSessionItemName).ToString()))
End While
' Bind values ArrayList to Repeater control.
Repeater1.DataSource = values
Repeater1.DataBind()
End Sub
Public Class SessionDataDisplay
Private _name As String
Private _value As String
Public Sub New(ByVal name As String, ByVal value As String)
Me._name = name
Me._value = value
End Sub
Public ReadOnly Property Name() As String
Get
Return _name
End Get
End Property
Public ReadOnly Property Value() As String
Get
Return _value
End Get
End Property
End Class
Protected Sub Repeater1_ItemCommand(ByVal source As Object, _
ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs)
' Determine which item to remove and
' use the Remove method to remove it.
Dim itemToRemove As RepeaterItem = e.Item
Dim sessionItemToRemove As String = _
CType(itemToRemove.FindControl("Label1"), Label).Text
Session.Remove(sessionItemToRemove)
' Refresh the Repeater control.
RefreshRepeater()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HttpSessionState Example</title>
</head>
<body>
<form id="form1"
runat="server"
defaultbutton="Button1"
defaultfocus="TextBox1">
<div>
Name
<asp:TextBox ID="TextBox1"
runat="server"></asp:TextBox>
<br />
Value
<asp:TextBox ID="TextBox2"
runat="server"></asp:TextBox>
<asp:Button ID="Button1"
runat="server"
OnClick="Button1_Click"
Text="Add" />
<br />
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<br />
SessionState Item Name:
<asp:Label ID="Label1"
runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>'/>,
SessionState Item Value:
<asp:Label ID="Label2"
runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Value") %>'/>
<asp:Button ID="RemoveItem"
Text="Remove"
runat="server" />
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
// If both name and value are specified
// use the Add method to add the item to session-state.
if (!String.IsNullOrEmpty(TextBox1.Text) &
!String.IsNullOrEmpty(TextBox2.Text))
{
string itemName = Server.HtmlEncode(TextBox1.Text);
string itemValue = Server.HtmlEncode(TextBox2.Text);
Session.Add(itemName, itemValue);
// Refresh the Repeater control.
RefreshRepeater();
}
}
protected void RefreshRepeater()
{
// Use the GetEnumerator method to
// iterate through the session-state.
ArrayList values = new ArrayList();
System.Collections.IEnumerator ie = Session.GetEnumerator();
string currentSessionItemName;
while (ie.MoveNext())
{
currentSessionItemName = (string)ie.Current;
values.Add(new SessionDataDisplay(currentSessionItemName,
Session[currentSessionItemName].ToString()));
}
// Bind values ArrayList to Repeater control.
Repeater1.DataSource = values;
Repeater1.DataBind();
}
public class SessionDataDisplay
{
private string _name;
private string _value;
public SessionDataDisplay(string name, string value)
{
this._name = name;
this._value = value;
}
public string Name
{
get { return _name; }
}
public string Value
{
get { return _value; }
}
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
// Determine which item to remove and
// use the Remove method to remove it.
RepeaterItem itemToRemove = e.Item;
string sessionItemToRemove =
((Label)itemToRemove.FindControl("Label1")).Text;
Session.Remove(sessionItemToRemove);
// Refresh the Repeater control.
RefreshRepeater();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HttpSessionState Example</title>
</head>
<body>
<form id="form1"
runat="server"
defaultbutton="Button1"
defaultfocus="TextBox1">
<div>
Name
<asp:TextBox ID="TextBox1"
runat="server"></asp:TextBox>
<br />
Value
<asp:TextBox ID="TextBox2"
runat="server"></asp:TextBox>
<asp:Button ID="Button1"
runat="server"
OnClick="Button1_Click"
Text="Add" />
<br />
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<br />
SessionState Item Name:
<asp:Label ID="Label1"
runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>'/>,
SessionState Item Value:
<asp:Label ID="Label2"
runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Value") %>'/>
<asp:Button ID="RemoveItem"
Text="Remove"
runat="server" />
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
プラットフォーム
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
参照
関連項目
HttpSessionState クラス
HttpSessionState メンバ
System.Web.SessionState 名前空間