HttpSessionState.Remove(String) 메서드

정의

세션 상태 컬렉션에서 항목을 삭제합니다.

public:
 void Remove(System::String ^ name);
public void Remove (string name);
member this.Remove : string -> unit
Public Sub Remove (name As String)

매개 변수

name
String

세션 상태 컬렉션에서 삭제할 항목의 이름입니다.

예제

다음 예제에서는 메서드를 사용하여 Add 세션 상태에 값을 저장하는 방법을 보여 있습니다. 또한 메서드를 사용하여 Remove 세션 상태의 값을 제거하는 방법도 보여줍니다. Repeater 컨트롤은 웹 페이지에 세션 상태의 콘텐츠를 표시하는 데 사용됩니다. 메서드는 GetEnumerator 세션 상태 컬렉션을 반복하고 컨트롤을 Repeater 채우는 데 사용됩니다.

<%@ 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>
<%@ 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>

설명

세션 상태 컬렉션에 지정 된 요소가 포함 되지 않습니다 name, 컬렉션 그대로 유지 됩니다. 예외는 throw되지 않습니다.

적용 대상

추가 정보