Getting all values from a Choice field in SharePoint 2010 using CSOM
I recently ran into an issue where I needed to get possible values for a SharePoint 2010 choice column. Thought I would share the code in case anyone else runs across this need. This code uses the ECMAScript Client-Side Object Model.
//Variable to hold the value once returned from SharePoint client.svc
var distinctChoices = [],
// Function to return all of the choices from the Choice column passed in
getUniqueColumnValuesFromChoice = function (columnName) {
var ctx = new SP.ClientContext.get_current();
var web = ctx.get_web();
var list = web.get_lists().getByTitle('Radio Database');
var field = list.get_fields().getByInternalNameOrTitle(columnName);
var choiceField = ctx.castTo(field, SP.FieldChoice);
ctx.load(field);
/* Call executeQueryAsync and pass in success and failure
anonymous functions */
ctx.executeQueryAsync(function () {
// Return array of all of the choices in the choice field
distinctChoices = choiceField.get_choices();
/* Since call is asynchronous, call function to interact
with the choices */
onFieldLoaded();
},
// This will be called when executeQueryAsync fails
function (sender, args) {
console.log(args);
});
};
function onFieldLoaded() {
// Not called until choices are loaded into distonctChoices array
};