ProfileBase.Item[String] Свойство

Определение

Возвращает или задает значение свойства профиля, индексированное по имени свойстваGets or sets a profile property value indexed by the property name.

public:
 virtual property System::Object ^ default[System::String ^] { System::Object ^ get(System::String ^ propertyName); void set(System::String ^ propertyName, System::Object ^ value); };
public override object this[string propertyName] { get; set; }
member this.Item(string) : obj with get, set
Default Public Overrides Property Item(propertyName As String) As Object

Параметры

propertyName
String

Имя свойства профиля.The name of the profile property.

Значение свойства

Object

Значение указанного свойства профиля, типизированное как object.The value of the specified profile property, typed as object.

Исключения

Была сделана попытка задать значение свойства в анонимном профиле, где атрибут allowAnonymous свойства имеет значение false.An attempt was made to set a property value on an anonymous profile where the property's allowAnonymous attribute is false.

Для текущего профиля не заданы свойства.There are no properties defined for the current profile.

-или--or-

Указанного имени свойства профиля не существует в текущем профиле.The specified profile property name does not exist in the current profile.

-или--or-

Поставщик указанного свойства профиля не опознал указанное свойство.The provider for the specified profile property did not recognize the specified property.

Была попытка установить значение свойства, отмеченного как доступное только для чтения.An attempt was made to set a property value that was marked as read-only.

Была попытка присвоить свойству значение, используя несовместимый тип.An attempt was made to assign a value to a property using an incompatible type.

Примеры

В следующем примере кода выводятся имена свойств в профиле пользователя путем привязки свойства Name из статической Properties коллекции SettingsProperty объектов к элементу управления GridView.The following code example lists the names of the properties in the user profile by binding the Name property from the static Properties collection of SettingsProperty objects to a GridView control. Значение выбранного свойства извлекается по имени с помощью коллекции Item[].The selected property value is retrieved by name using the Item[] collection. Пример файла Web. config, в котором указываются свойства профиля пользователя, см. в примере, приведенном для класса ProfileBase.For an example of a Web.config file that specifies properties for the user profile, see the example provided for the ProfileBase class.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Profile" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Page_Load()
{
  if (!IsPostBack)
  {
    PropertiesListBox.DataSource = ProfileBase.Properties;
    PropertiesListBox.DataBind();
  }

  if (PropertiesListBox.SelectedItem != null)
  {
    object propValue = Profile[PropertiesListBox.SelectedItem.Text];

    Type propType = propValue.GetType();

    // If the property is a value type, return ToString().

    if (propType == typeof(string) || propType.IsValueType)
    {
      ValueLabel.Visible = true;
      ValueGridView.Visible = false;
      ValueLabel.Text = propValue.ToString();
      return;
    }


    // Bind the property to a GridView.

    try
    {
      ValueGridView.DataSource = propValue;
      ValueGridView.DataBind();
      ValueGridView.Visible = true;
      ValueLabel.Visible = false; 
    }
    catch
    {
      // If the property is not bindable, return ToString().

      ValueLabel.Visible = true;
      ValueGridView.Visible = false;
      ValueLabel.Text = propValue.ToString();
    }
  }
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<h3>View Profile properties:</h3>

<form id="form1" runat="server">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td>Property</td>
      <td>Value</td>
    </tr>
    <tr>
      <td valign="top">
        <asp:ListBox runat="server" id="PropertiesListBox" Rows="10" AutoPostBack="True" DataTextField="Name" />
      </td>
      <td valign="top">
        <asp:GridView runat="Server" id="ValueGridView" Visible="False" />
        <asp:Label runat="Server" id="ValueLabel" Visible="False" />
      </td>
    </tr>
  </table>
</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Profile" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Page_Load()

  If Not IsPostBack Then
    PropertiesListBox.DataSource = ProfileBase.Properties
    PropertiesListBox.DataBind()
  End If

  If Not PropertiesListBox.SelectedItem Is Nothing Then
    Dim propValue As Object = Profile(PropertiesListBox.SelectedItem.Text)

    Dim propType As Type = propValue.GetType()

    ' If the property is a value type, return ToString().

    If propType Is GetType(String) Or propType.IsValueType Then
      ValueLabel.Visible = True
      ValueGridView.Visible = False
      ValueLabel.Text = propValue.ToString()
      Return
    End If


    ' Bind the property to a GridView.

    Try
      ValueGridView.DataSource = propValue
      ValueGridView.DataBind()
      ValueGridView.Visible = True
      ValueLabel.Visible = False 
    Catch
      ' If the property is not bindable, return ToString().

      ValueLabel.Visible = True
      ValueGridView.Visible = False
      ValueLabel.Text = propValue.ToString()
    End Try
  End If
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<h3>View Profile properties:</h3>

<form id="form1" runat="server">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td>Property</td>
      <td>Value</td>
    </tr>
    <tr>
      <td valign="top">
        <asp:ListBox runat="server" id="PropertiesListBox" Rows="10" AutoPostBack="True" DataTextField="Name" />
      </td>
      <td valign="top">
        <asp:GridView runat="Server" id="ValueGridView" Visible="False" />
        <asp:Label runat="Server" id="ValueLabel" Visible="False" />
      </td>
    </tr>
  </table>
</form>

</body>
</html>

Комментарии

Это свойство можно использовать для извлечения или задания значений свойств профиля пользователя для приложения по имени.You can use this property to retrieve or set the property values of the user profile for your application by name. Возвращаемые значения вводятся как object и должны быть приведены в качестве конкретного типа объекта при извлечении.Returned values are typed as object and must be cast as the specific object type when retrieved. Для строго типизированного доступа к значениям свойств профиля можно получить доступ к свойству по имени в качестве члена свойства Profile, доступного на каждой странице, например Profile.CustomerAddress.For strongly typed access to profile property values, you can access the property by name as a member of the Profile property available on each page, for example, Profile.CustomerAddress.

Применяется к

Дополнительно