کار با لیست‌ها به صورت برنامه‌نویسی در شیرپوینت

شیرپوینت، لیست و کتابخانه را برای ذخیره‌سازی اطلاعات در اختیار قرار می‌دهد. می‌توانید از کتابخانه‌های مایکروسافت برای کار با آن‌ها در کد خود استفاده کنید

قبل از شروع لازم است بدانید که ذخیره سازی اطلاعات در شیرپوینت در لیست‌ها و کتابخانه‌ها انجام می‌شود، در لیست‌های رکوردهای اطلاعاتی ذخیره می‌شوند و در کتابخانه‌ها، فایل‌ها را می‌توانید قرار دهید. بقیه امکانات لیست و کتابخانه‌ها مشابه هم هستند. البته شیرپونت تعدادی لیست و کتابخانه پیش فرض دارد مثل لیست تقویم، لیست تماس، لیست پیوند یا کتابخانه تصاویر و کتابخانه اسناد و ... که از آن‌ها هم می‌توانید استفاده کنید، اما عمومی‌ترین نوع لیست در شیرپوینت، لیست سفارشی یا Custom List است که به هر شکلی می‌توانید با آن کار کنید و تنها یک ستون از پیش تعریف شده عنوان دارد و بقیه ستون‌ها را بر حسب نیاز می‌توانید به آن اضافه کنید.

نکته دیگر که در مطلب کار با سایت‌های شیرپوینت فراموش کردم به آن اشاره کنم، بحث disposable بودن کلاس SPWeb است و بهتر است هنگام استفاده از این کلاس از using استفاده کنید.
ضمناً مانند مثال‌های مطلب قبلی، باز هم به Microsoft.Sharepoint.dll نیاز دارید و البته کدهای نوشته شده در همه نسخه‌های شیرپوینت به یک شکل کار می‌کنند.

اضافه کردن لیست به یک سایت در شیرپوینت

لیست‌ها زیرمجموعه‌ای از یک زیرسایت (کلاس SPWeb) هستند، اگر حتی بخواهید به یک مجموعه سایت لیستی اضافه کنید باید به سایت root آن لیست اضافه کنید. جهت اضافه کردن لیست به سایت از کد زیر می‌توانید استفاده کنید

همان‌طور که در خط highlight شده مشخص است با استفاده از متد Add می‌توانید لیست خود را به سایت مورد نظر اضافه کنید. در مثال بالا لیستی از نوع لیست سفارشی را به سایت اضافه کردیم.

Static Name برای لیست

وقتی در شیرپوینت لیستی یا ستونی را ایجاد می‌کنید، نامی که اولین بار به آن لیست یا ستون می‌دهید به عنوان Static Name محسوب می‌شود، کاربر چنانچه دسترسی لازم را داشته باشد می‌تواند این نام‌ها را هر زمان به دلخواه تغییر دهد. نامی که کاربر برای لیست یا ستون مشاهده می‌کند Display Name نامیده می‌شود. Static Name و Display Name در ابتدای کار ایجاد لیست و ستون یکی هستند ولی بعداً با تعویض نام، متفاوت خواهند بود. در انواع متدهایی که برای کار با لیست‌ها در شیرپوینت وجود دارد عموماً از Display Name استفاده می‌شود. این مساله باعث می‌شود که هنگام کار با لیست‌ها اگر نام آن‌ها توسط کاربر تغییر کرده باشد، برنامه شما به خطا بخورد. راه حل این مساله را در نوشته دیگری بررسی خواهیم کرد.

اضافه کردن لیست به Quick Launch

وقتی شما از طریق خود UI شیرپوینت لیستی را اضافه می‌کنید گزینه‌ای وجود دارد که می‌توانید مشخص کنید آیا لیست مورد نظر در منو عمودی شیرپوینت که به Quick Lanuch معروف است نمایش داده شود یا خیر. ولی وقتی لیستی را با برنامه‌نویسی در شیرپوینت ایجاد می‌کنید چنین گزینه‌ای وجود ندارد و چنانچه بخواهید لیستی را به Quick Launch اضافه یا از آن حذف کنید باید از property‌ مربوطه یعنی OnQuickLaunch استفاده کنید. به عنوان مثال همان لیست مثال قبلی را در نظر بگیرید. با کد زیر می‌توانیم لیست را به Quick Lanuch اضافه کنیم.

دقت کنید که در خط 5 برای گرفتن شی مربوط به لیست از Display Name‌ لیست استفاده شده است. همچنین بعد از تغییر یک property شی لیست باید این تغییر را با فراخوانی متد update ذخیره کنیم.

اضافه کردن ستون به لیست

شیرپوینت انواع ستون‌های مختلفی را به صورت پیش فرض پشتیبانی می‌کند: ستون‌های از جنس عدد، رشته، تاریخ و ... جهت افزودن ستون به یک لیست شیرپوینت از کد زیر می‌توانید استفاده کنید:

همان‌طور که در خط highlight شده مشخص است در متد Add پارامترهای نام ستون، نوع ستون و اینکه آیا وجود داده برای ستون الزامی است یا خیر را مشخص می‌کنیم. دقت کنید که در این مثال نیازی به استفاده از متد update نیست.

اضافه کردن ستون به نما

در هر لیست شیرپوینتی می‌توانید view‌ها یا نماهای مختلفی را ایجاد کنید، در هر نما که می‌تواند عمومی یا خصوصی (مخصوص یک کاربر) باشد گزینه‌هایی برای مشخص کردن ستون‌هایی که در آن نما می‌آیند، ترتیب داده‌ها، فیلتر داده‌ها، گروه بندی داده‌ها، صفحه بندی داده‌ها و ... وجود دارد. در واقع اگر لیست‌های شیرپوینت را یک جور فرم‌ساز در نظر بگیریم، نماها را می‌توان گزارش‌ساز در نظر گرفت. موقعی که از طریق خود UI شیرپوینت ستونی را به لیستی اضافه می‌کنید این امکان وجود دارد که مشخص کنید که آیا این ستون‌ به نمای پیش فرض اضافه شود یا خیر. کد زیر ستونی را که در مثال قبل ساختیم به نمای پیش فرض اضافه می‌کند. اگر بخواهیم ستون را به نمای دیگری اضافه کنیم ابتدا باید آن نما را داخل مجموعه نماها که در property مربوطه یعنی Views وجود دارد پیدا کنیم.

دقت کنید اینجا هم نیاز به استفاده از متد Update برای ذخیره تغییرات وجود دارد. سایر موارد مثل به روز رسانی اطلاعات لیست‌ها یا حذف آن‌ها هم به سادگی از طریق متدها قابل انجام است. در نوشته دیگری عملیات CRUD در لیست‌های شیرپوینت را با هم بررسی خواهیم کرد.