كيفية استخدام عنصر التحكم MultipleLookupField في SharePoint: دليل خطوة بخطوة

عند العمل مع SharePoint، قد تواجه سيناريوهات تحتاج فيها لربط عناصر متعددة من قائمة واحدة بعنصر في قائمة أخرى. أحد عناصر التحكم المفيدة لتحقيق ذلك هو MultipleLookupField. في هذه التدوينة، سنرشدك خطوة بخطوة لاستخدام عنصر التحكم MultipleLookupField، مع التأكد من أنك تفهم كيفية عرض وإدارة قيم البحث المتعددة ضمن أجزاء الويب الخاصة بك.

المشكلة: ربط قائمتين

التحدي الأساسي هو دمج عنصر التحكم MultipleLookupField في صفحة ويب تعمل في سياق SharePoint. قد ترغب في ربط مجموعتين من حقول SharePoint، مثل المهام والمستندات. يتطلب ذلك إعداداً أساسياً وفهماً لكيفية التلاعب بالتحكم بشكل فعال.

البدء مع MultipleLookupField

الخطوة 1: إعداد بيئة SharePoint الخاصة بك

  1. إعداد موقع فريق: ابدأ بإنشاء موقع فريق جديد داخل SharePoint.
  2. إضافة مهام: انتقل إلى قائمة المهام وأنشئ بعض المهام.
  3. إنشاء مستند: قم بتحميل مستند إلى مكتبة المستندات المشتركة.
  4. إنشاء عمود بحث:
    • في مكتبة المستندات المشتركة، أنشئ عموداً جديداً يحمل اسم “مرتبط”.
    • عيّن هذا العمود ليكون حقل بحث يشير إلى حقل “العنوان” في قائمة المهام.
    • تأكد من السماح بقيم متعددة لهذا العمود.

الخطوة 2: إنشاء جزء الويب

للبدء في استخدام MultipleLookupField، تحتاج لإنشاء جزء ويب. إليك مثال مبسط لإرشادك عبر هذه العملية.

الهيكل الأساسي لجزء الويب الخاص بك

Label l;
MultipleLookupField mlf;

protected override void CreateChildControls()
{
    base.CreateChildControls();
    SPList list = SPContext.Current.Web.Lists["Shared Documents"];
    if (list != null && list.Items.Count > 0)
    {
        LiteralControl lit = new LiteralControl("ربط المهام بـ " + list.Items[0].Name);
        this.Controls.Add(lit);

        mlf = new MultipleLookupField();
        mlf.ControlMode = SPControlMode.Edit;
        mlf.FieldName = "Related";
        mlf.ItemId = list.Items[0].ID;
        mlf.ListId = list.ID;
        mlf.ID = "Related";
        this.Controls.Add(mlf);

        Button b = new Button();
        b.Text = "تغيير";
        b.Click += new EventHandler(bClick);
        this.Controls.Add(b);

        l = new Label();
        this.Controls.Add(l);
    }
}

void bClick(object sender, EventArgs e)
{
    l.Text = "";
    foreach (SPFieldLookupValue val in (SPFieldLookupValueCollection)mlf.Value)
    {
        l.Text += val.LookupValue.ToString() + " ";
    }

    SPListItem listitem = mlf.List.Items[0];
    listitem["Related"] = mlf.Value;
    listitem.Update();
    mlf.Value = listitem["Related"];
}

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    EnsureChildControls();
}

الخطوة 3: نشر جزء الويب الخاص بك

  1. بناء ونشر: قم بتجميع الكود الخاص بك ونشر جزء الويب في بيئة SharePoint الخاصة بك.
  2. إضافة جزء الويب إلى موقعك: انتقل إلى الصفحة الرئيسية لموقع الفريق الخاص بك وأضف نسخة من جزء الويب الجديد.

فهم معالج النقر

معالج حدث النقر bClick له أهمية كبيرة في تحديث واجهة المستخدم.

  • استرجاع القيم: يبدأ باسترجاع جميع القيم المحددة من MultipleLookupField وعرضها.
  • تحديث عنصر القائمة: يقوم بتحديث حقل “مرتبط” في قائمة المستندات بالمهام المحددة، مما يضمن التزامن بين واجهة المستخدم وعنصر القائمة.

ملاحظات إضافية

  • المثال المقدم أساسي جداً: من المهم ملاحظة أنه يفتقر إلى معالجة الأخطاء الشاملة وليس معدا للاستخدام الإنتاجي. اعتبر توسيعه لتحسين قابلية الاستخدام.
  • قد تجد أنه إذا قمت بتعليق السطر mlf.Value = listitem["Related"];، فقد لا تتزامن واجهة المستخدم بشكل صحيح مع البيانات الأساسية، مما يجعل هذا السطر ضرورياً لوظيفة صحيحة.

الخلاصة

من خلال اتباع الخطوات الموضحة أعلاه، يمكنك دمج عنصر التحكم MultipleLookupField بنجاح في موقع SharePoint الخاص بك. يتيح لك ذلك إدارة فعالة للعناصر المرتبطة من قوائم مختلفة، مما يعزز تجربة SharePoint الخاصة بك بشكل عام. مع قليل من الممارسة والتحسين، يمكنك تحويل هذه المبادئ الأساسية إلى حلول قوية مصممة وفقًا لاحتياجاتك الخاصة.

لا تتردد في التواصل إذا كانت لديك أي أسئلة أو لمشاركة تجاربك مع استخدام عنصر التحكم MultipleLookupField في SharePoint!