Skip to main content

Field ที่ว่างเปล่า

Submitted by ezybzy on

สมมติเราสร้าง Field ไว้เก็บข้อมูลใน List item โดยที่ Field นี้ไม่ได้บังคับว่าให้กรอกข้อมูล เหตุการณ์เหมือนจะเป็นไปด้วยดี ผู้ใช้งานกรอกข้อมูลใส่ List item ไว้เรียบร้อยโดยไม่ได้กรอกค่าใน Field นี้

แต่แล้ว เราจำเป็นต้องเพิ่มค่าให้กับ Field นี้โดยผ่าน Code ปัญหาเกิดทันทีครับ

SPFieldUserValueCollection a = item[b] as SPFieldUserValueCollection;

สมมติว่าผู้ใช้งาน ไม่ได้ทำการเลือกรายชื่อผู้ใช้ใน Field ที่กำหนดให้นี้ ผลลัพธ์ที่ได้ของตัวแปร a นั้นคือ null ครับ

เข้าใจว่านี่คงเป็นเพราะกระบวนการการเก็บข้อมูลในฐานข้อมูล ซึ่งหากไม่ได้มีการบันทึกข้อมูล ตัว SharePoint จะตีให้ค่าของ Field นั้นเป็น String.Empty ซึ่งจากที่เห็นทำให้ as operator ให้ผลลัพธ์ null ออกมา ทางแก้ที่พอจะนึกออกคือ ก็ต้องสร้างค่านั้นเอง แล้วทำการให้ค่ากลับไปเพื่อบันทึกข้อมูลใส่ List item ดังเช่น

SPFieldUserValueCollection a = item[b] as SPFieldUserValueCollection;

if (a == null)
    a = new SPFieldUserValueCollection();

// Do something ...

// Assign value back to list item
item[b] = a;

item.Update();

อาจจะเป็นจุดที่หลาย ๆ คนพลาดนะ ก็จำเอาไว้

Tags