Welcome to MSDN Blogs Sign in | Join | Help

SharePoint : Programmatically setting read-only columns erases the value in the other columns

PROBLEM : The share point list has 2 custom columns and the list has some values in the custom columns. You programmatically set the read only property of the first column to true. After that, when you edit the value of the second column through the data sheet view, the value of the first column was erased.

 

WORKAROUND: When set the readonly property to true, apply the following code

 localhost.Lists listService = new localhost.Lists();
 listService.Credentials= System.Net.CredentialCache.DefaultCredentials;
 XmlDocument xmlDoc = new System.Xml.XmlDocument();
 XmlNode ndUpdateFields = xmlDoc.CreateNode(XmlNodeType.Element, "Fields", "");
 ndUpdateFields.InnerXml = "<Method ID='1'>" +
 "<Field ReadOnly='True' ShowInEditForm = 'FALSE' Type='Number' Name='_x0043_ol1' DisplayName='Col1'/>" +
 "</Method>";
 try
 {
  XmlNode ndReturn = listService.UpdateList("Events", null, null, ndUpdateFields, null, null);
  MessageBox.Show(ndReturn.OuterXml);
 }
 catch (Exception ex)
 {
  MessageBox.Show("Message:\n" + ex.Message + "\nStackTrace:\n" + ex.StackTrace);
 }

Note :
======
Use the same case sensitivity in the xml fields. For e.g. ReadOnly=’True’, and it is not ReadOnly=’TRUE’

Published Sunday, March 12, 2006 10:28 AM by Karthikeyan
Filed under:

Comments

No Comments

Anonymous comments are disabled
 
Page view tracker