This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

WebPartConnection.IsShared الخاصية

Visual Studio 2010

الحصول على القيمة تشير إلى ما إذا كان WebPartConnectionالكائن هو vهوible لكافة المستخدمين أو فقط للمستخدم الحالي.

مساحة الاسم:  System.Web.UI.WebControls.WebParts
التجميع:  System.Web (في System.Web.dll)

[BrowsableAttribute(false)]
public bool IsShared { get; }

قيمة الخاصية

النوع: System.Boolean
true إذا كان الاتصال هو المشتركة؛ otherwهوe،false.

كما مع الفردية WebPartعناصر التحكم، WebPartConnectionكائن يمكن المشترك أو مثيل لكل مستخدم. يعني نسخة مشتركة الاتصال هو يعني vهوible لكافة مستخدمي صفحة ويب، ونسخة لكل مستخدم للاتصال هو vهوible فقط لمستخدم معين.

بشكل عام، والطريقة الاتصال هو بإضافتها إلى صفحة تحديد ما إذا كان الاتصال هو المشتركة. إذا كان الاتصال هو التي تم تعريفها في علامات على صفحة ويب، ثم الاتصال هو المشتركة و IsSharedالقيمة خاصية هو true. بالتمت الإضافة إلى ذلك، إذا كانت صفحة ويب هو في مشاركة نطاق إضفاء الطابع الشخصي عند اتصال هو تمت الإضافة الاتصال هو المشتركة أيضا. بشكل عام، عندما يستخدم مستخدم <asp:connectionszone>واجهة المستخدم عبارة (واجه المستخدم) لإضافة اتصال الصفحة في مجال تخصيص المستخدم، بحيث لا تتم مشاركة الاتصال و IsSharedقيمة خاصية false.

The following تعليمات برمجية مثال demonstrates programmatic استخدم of the IsShared خاصية.

The تعليمات برمجية مثال has five parts:

  • عنصر تحكم مستخدم يتيح لك إلى تغيير وضع عرض "أجزاء ويب" تشغيل صفحة.

  • مصدر تعليمات برمجية لواجهة و جهازي WebPartيتحكم بالحركة الموفر و مستهلك للاتصال.

  • صفحة ويب استضافة الجميع عناصر التحكم وتشغيلها تعليمات برمجية المثال.

  • An إدخال في the ويب.config ملف that هو مطلوب إلى تشغيل the مثال.

  • شرح كيفية إلى تشغيل الصفحة المثال.

الجزء أول من هذا المثال تعليمات برمجية هو عنصر تحكم مستخدم الذي يمكن مستخدمين من إلى تغيير أوضاع عرض تشغيل صفحة ويب. حفظ رمز المصدر التالي إلى ملف.ascx، يعطي الملف الاسم الذي هو المعينة إلى Srcالسمة الخاصة Registerموجها لترتيب هو مستخدم التحكم، التي هو الموجود في الجزء العلوي من صفحة ويب مضيفة. لعرض تفاصيل حول أوضاع ووصف المصدر تعليمات برمجية في عنصر التحكم هذا، راجع الإرشادات التفصيلية: تغيير أوضاع العرض على صفحة أجزاء ويب.


<%@ control language="C#" classname="DisplayModeMenuCS"%>
<script runat="server">

 // Use a field to reference the current WebPartManager.
  WebPartManager _manager;

  void Page_Init(object sender, EventArgs e)
  {
    Page.InitComplete += new EventHandler(InitComplete);
  }  

  void InitComplete(object sender, System.EventArgs e)
  {
    _manager = WebPartManager.GetCurrentWebPartManager(Page);

    String browseModeName = WebPartManager.BrowseDisplayMode.Name;

    // Fill the dropdown with the names of supported display modes.
    foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
    {
      String modeName = mode.Name;
      // Make sure a mode is enabled before adding it.
      if (mode.IsEnabled(_manager))
      {
        ListItem item = new ListItem(modeName, modeName);
        DisplayModeDropdown.Items.Add(item);
      }
    }

    // If shared scope is allowed for this user, display the scope-switching
    // UI and select the appropriate radio button for the current user scope.
    if (_manager.Personalization.CanEnterSharedScope)
    {
      Panel2.Visible = true;
      if (_manager.Personalization.Scope == PersonalizationScope.User)
        RadioButton1.Checked = true;
      else
        RadioButton2.Checked = true;
    }

  }

  // Change the page to the selected display mode.
  void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e)
  {
    String selectedMode = DisplayModeDropdown.SelectedValue;

    WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode];
    if (mode != null)
      _manager.DisplayMode = mode;
  }

  // Set the selected item equal to the current display mode.
  void Page_PreRender(object sender, EventArgs e)
  {
    ListItemCollection items = DisplayModeDropdown.Items;
    int selectedIndex = 
      items.IndexOf(items.FindByText(_manager.DisplayMode.Name));
    DisplayModeDropdown.SelectedIndex = selectedIndex;
  }

  // Reset all of a user's personalization data for the page.
  protected void LinkButton1_Click(object sender, EventArgs e)
  {
    _manager.Personalization.ResetPersonalizationState();
  }

  // If not in User personalization scope, toggle into it.
  protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.Scope == PersonalizationScope.Shared)
      _manager.Personalization.ToggleScope();
  }

  // If not in Shared scope, and if user is allowed, toggle the scope.
  protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.CanEnterSharedScope && 
        _manager.Personalization.Scope == PersonalizationScope.User)
      _manager.Personalization.ToggleScope();
  }
</script>
<div>
  <asp:Panel ID="Panel1" runat="server" 
    Borderwidth="1" 
    Width="230" 
    BackColor="lightgray"
    Font-Names="Verdana, Arial, Sans Serif" >
    <asp:Label ID="Label1" runat="server" 
      Text="&nbsp;Display Mode" 
      Font-Bold="true"
      Font-Size="8"
      Width="120" 
      AssociatedControlID="DisplayModeDropdown"/>
    <asp:DropDownList ID="DisplayModeDropdown" runat="server"  
      AutoPostBack="true" 
      Width="120"
      OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
    <asp:LinkButton ID="LinkButton1" runat="server"
      Text="Reset User State" 
      ToolTip="Reset the current user's personalization data for the page."
      Font-Size="8" 
      OnClick="LinkButton1_Click" />
    <asp:Panel ID="Panel2" runat="server" 
      GroupingText="Personalization Scope"
      Font-Bold="true"
      Font-Size="8" 
      Visible="false" >
      <asp:RadioButton ID="RadioButton1" runat="server" 
        Text="User" 
        AutoPostBack="true"
        GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
      <asp:RadioButton ID="RadioButton2" runat="server" 
        Text="Shared" 
        AutoPostBack="true"
        GroupName="Scope" 
        OnCheckedChanged="RadioButton2_CheckedChanged" />
    </asp:Panel>
  </asp:Panel>
</div>


The ثانية part of the تعليمات برمجية مثال هو the المصدر تعليمات برمجية for the واجهة, و the مستهلك و موفر عناصر التحكم. لتشغيل مثال التعليمات البرمجية , يجب عليك التحويل برمجياً للتعليمات البرمجية المصدر . يمكنك تحويله برمجياً مباشرة و وضع ناتج التجميع في مجلد سلة موقع ويب الخاص بك أو في مخزن التجميع العمومي المؤقت. بشكل بديل، يمكنك وضع التعليمات البرمجية المصدر في مجلد App_Code للموقع الخاص بك ، حيث سيتم تحويله برمجيا بشكل حيوي وقت التشغيل . مثال التعليمات البرمجية هذا يستخدم التحويل البرمجي الديناميكي. للحصول على الإرشادات التفصيلية التي توضح كيفية التحويل البرمجي، راجع الإرشادات التفصيلية: تطوير و استخدام عنصر تحكم خادم مخصص.


namespace Samples.AspNet.CS.Controls
{
  using System;
  using System.Web;
  using System.Web.Security;
  using System.Security.Permissions;
  using System.Web.UI;
  using System.Xml;
  using System.Web.UI.WebControls;
  using System.Web.UI.WebControls.WebParts;

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public interface IZipCode
  {
    string ZipCode { get; set;}
  }


  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class ZipCodeWebPart : WebPart, IZipCode
  {
    string zipCodeText = String.Empty;
    TextBox input;
    Button send;

    public ZipCodeWebPart()
    {

    }

    // Make the implemented property personalizable to save 
    // the Zip Code between browser sessions.
    [Personalizable()]
    public virtual string ZipCode
    {
      get { return zipCodeText; }
      set { zipCodeText = value; }
    }

    // This is the callback method that returns the provider.
    [ConnectionProvider("Zip Code Provider", "ZipCodeProvider")]
    public IZipCode ProvideIZipCode()
    {
      return this;
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      input = new TextBox();
      this.Controls.Add(input);
      send = new Button();
      send.Text = "Enter 5-digit Zip Code";
      send.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(send);
    }

    private void submit_Click(object sender, EventArgs e)
    {
      if (input.Text != String.Empty)
      {
        zipCodeText = Page.Server.HtmlEncode(input.Text);
        input.Text = String.Empty;
      }
    }

  }

  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class WeatherWebPart : WebPart
  {
    private IZipCode _provider;
    string _zipSearch;
    Label DisplayContent;

    // This method is identified by the ConnectionConsumer 
    // attribute, and is the mechanism for connecting with 
    // the provider. 
    [ConnectionConsumer("Zip Code Consumer", "ZipCodeConsumer")]
    public void GetIZipCode(IZipCode Provider)
    {
      _provider = Provider;
    }


    protected override void OnPreRender(EventArgs e)
    {
      EnsureChildControls();

      if (this._provider != null)
      {
        _zipSearch = _provider.ZipCode.Trim();
        DisplayContent.Text = "My Zip Code is:  " + _zipSearch;
      }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      DisplayContent = new Label();
      this.Controls.Add(DisplayContent);
    }

  }
}


الجزء الثالث تعليمات برمجية هو مثال لصفحة ويب. في the Button2_Click أسلوب, it checks the IsShared خاصية of the موجود اتصال و displays the النتيجة تشغيل the الصفحة.


<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc1" 
    TagName="DisplayModeMenuCS"
    Src="~/displaymodemenucs.ascx" %>
<%@ Register TagPrefix="aspSample" 
    Namespace="Samples.AspNet.CS.Controls" %>

<!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)
  {

    ProviderConnectionPoint provPoint = 
      mgr.GetProviderConnectionPoints(zip1)["ZipCodeProvider"];
    ConsumerConnectionPoint connPoint =
      mgr.GetConsumerConnectionPoints(weather1)["ZipCodeConsumer"];
    WebPartConnection conn1 = mgr.ConnectWebParts(zip1, provPoint,
      weather1, connPoint);
  }

  protected void Button2_Click(object sender, EventArgs e)
  {

    WebPartConnection conn = mgr.Connections[0];

    if(conn.IsShared)
    lbl2.Text = "Shared";
    else
    lbl2.Text = "Per-User";

  }


  protected void mgr_DisplayModeChanged(object sender, WebPartDisplayModeEventArgs e)
  {
    if (mgr.DisplayMode == WebPartManager.ConnectDisplayMode)
    {
      Button1.Visible = true;
      Button2.Visible = true;
    }
    else
    {
      Button1.Visible = false;
      Button2.Visible = false;
    }

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr" runat="server" OnDisplayModeChanged="mgr_DisplayModeChanged">
      </asp:WebPartManager>
      <uc1:DisplayModeMenuCS ID="menu1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <aspSample:ZipCodeWebPart ID="zip1" runat="server"
            Title="Zip Code Provider"  />
          <aspSample:WeatherWebPart ID="weather1" runat="server" 
            Title="Zip Code Consumer" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:ConnectionsZone ID="ConnectionsZone1" runat="server">
      </asp:ConnectionsZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Connect WebPart Controls" 
        OnClick="Button1_Click" 
        Visible="false" />
      <br />
      <asp:Button ID="Button2" runat="server" 
        Text="Connection Details" 
        OnClick="Button2_Click" 
        Visible="false" /> 
      <br />   
      <asp:Label ID="lbl2" runat="server" />
    </div>
    </form>
</body>
</html>


الجزء الرابع من مثال التعليمة البرمجية هو إدخال في ملف ويب.config اللازم لحساب المستخدم الذي سيقوم بتشغيل المثال لكي تتمكن من تحرير الصفحة في مشاركة نطاق إضفاء الطابع الشخصي. إلى تمكين this, you must have an إدخال في the ويب.config ملف within the <system.web> مقطع that looks مثل the following مثال.

<webParts>
  <personalization>
    <authorization>
      <allow users="UserAccount"
             roles="admin"
             verbs="enterSharedScope"/>
    </authorization>          
  </personalization>
</webParts>

بعد you تحميل the الصفحة في a مستعرض, استخدم the الوضع عرض إسقاط-أسفل عنصر تحكم القائمة إلى تبديل the الصفحة إلى يعيّن الوضع عرض. انقر the يعيّن WebPart عناصر التحكم زر إلى نموذج a اتصال. التالي, انقر the اتصال تفاصيل زر إلى عرض whether the اتصال هو shared. إذا قمت بإنشاء الاتصال مع الصفحة في المستخدم الافتراضي نطاق إضفاء الطابع الشخصي، IsSharedيجب أن تكون قيمة خاصية falseللاتصال.

تشغيل the الأفعال قائمة of واحد of the WebPart عناصر التحكم (indicated بواسطة the downward arrow في the عنوان bar), انقر the يعيّن فعل. When the اتصال واجه المستخدم appears, انقر the قطع الاتصال زر إلى إنهاء the اتصال. وضع عرض استخدام عنصر تحكم للعودة صفحة استعراض الوضع.

In the الوضع عرض عنصر تحكم, تحديد the Shared خيار إلى تبديل the الصفحة في shared إضفاء طابع شخصي نطاق. Follow the same steps كـ those above إلى إنشاء a اتصال, و again انقر the اتصال تفاصيل زر إلى عرض whether the اتصال هو shared. في this حالة, the القيمة of the IsShared خاصية should be true.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: