SharePoint MultipleLookupField Kontrolünü Nasıl Kullanırsınız: Adım Adım Kılavuz

SharePoint ile çalışırken, bir listedeki bir öğeyi başka bir listedeki birden fazla öğe ile ilişkilendirme senaryolarıyla karşılaşabilirsiniz. Bunu başarmak için faydalı bir kontrol olan MultipleLookupField mevcuttur. Bu yazıda, MultipleLookupField kontrolünü adım adım kullanmanıza rehberlik edeceğiz ve web parçalarınızda birden fazla arama değerini nasıl görüntüleyeceğinizi ve yöneteceğinizi anlamanızı sağlayacağız.

Problem: İki Listeyi Bağlama

Ana zorluk, MultipleLookupField kontrolünü SharePoint bağlamında çalışan bir web sayfasına entegre etmektir. Görevler ve belgeler gibi iki SharePoint alan koleksiyonunu bağlamak isteyebilirsiniz. Bu, bazı temel ayarlamalar ve kontrolü etkili bir şekilde manipüle etme anlayışı gerektirir.

MultipleLookupField ile Başlarken

Adım 1: SharePoint Ortamınızı Oluşturun

  1. Bir Takım Sitesi Ayarlayın: SharePoint içinde yeni bir takım sitesi oluşturarak başlayın.
  2. Görevler Ekleyin: Görevler listesine gidin ve birkaç görev oluşturun.
  3. Bir Belge Oluşturun: Paylaşılan Belgeler kütüphanesine bir belge yükleyin.
  4. Bir Arama Sütunu Oluşturun:
    • Paylaşılan Belgeler kütüphanesinde “İlişkili” adında yeni bir sütun oluşturun.
    • Bu sütunun Görevler listesinin “Başlık” alanını referans alan bir Arama alanı olarak ayarlanmasını sağlayın.
    • Bu sütunun çoklu değerleri kabul etmesine dikkat edin.

Adım 2: Web Parçası Oluşturma

MultipleLookupField’i kullanmaya başlamak için bir web parçası oluşturmanız gerekiyor. İşte bu süreci anlamanıza yardımcı olacak basitleştirilmiş bir örnek.

Web Parçanızın Temel Yapısı

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("Görevleri " + list.Items[0].Name + " ile ilişkilendir");
        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 = "Değiştir";
        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();
}

Adım 3: Web Parçanızı Yayınlama

  1. Derleyin ve Yayınlayın: Kodunuzu derleyin ve web parçanızı SharePoint ortamınıza dağıtın.
  2. Web Parçasını Sitene Ekleyin: Takım sitesi ana sayfanıza gidin ve yeni web parçanızın bir örneğini ekleyin.

Tıklama İşleyicisini Anlamak

Tıklama olay işleyicisi bClick, kullanıcı arayüzünü güncellemek için kritik öneme sahiptir.

  • Değerleri Almak: Seçilen tüm değerlerin MultipleLookupField‘den alınması ve görüntülenmesiyle başlar.
  • Liste Öğesini Güncelleme: Seçilen görevlerle belgeler listesindeki “İlişkili” alanı günceller, böylece kullanıcı arayüzü ile liste öğesi arasında senkronizasyon sağlanır.

Ek Notlar

  • Verilen örnek oldukça basittir: kapsamlı hata yönetiminden yoksundur ve üretim kullanımı için tasarlanmamıştır. Daha iyi kullanılabilirlik için genişletilmesi düşünülmelidir.
  • mlf.Value = listitem["Related"]; satırını yorum satırı haline getirirseniz, kullanıcı arayüzünün altta yatan verilerle senkronize olmayabileceğini bulabilir, bu yüzden bu satırın uygun işlevsellik için gerekli olduğunu unutmayın.

Sonuç

Yukarıda belirtilen adımları izleyerek, MultipleLookupField kontrolünü SharePoint sitenize başarıyla entegre edebilirsiniz. Bu, farklı listelerden ilgili öğelerin verimli bir şekilde yönetilmesini sağlar ve genel SharePoint deneyiminizi artırır. Biraz pratik ve iyileştirmeyle, bu temel ilkeleri belirli ihtiyaçlarınıza yönelik güçlü çözümlere dönüştürebilirsiniz.

MultipleLookupField kontrolünü SharePoint’te kullanma deneyimlerinizi paylaşmaktan veya sorularınızı sormaktan çekinmeyin!