JSOM对象模型加载下拉列表(查阅项,选项)

'use strict';

var currentcontext;
var hostcontext;
var hostweb;
var allSurveys;
var hostUrl;
var list;
var allProducts;
var allCustomers;
var field = null;
(function () {

	
	$(document).ready(function () {
		hostUrl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
		currentcontext = new SP.ClientContext.get_current();
        hostcontext = new SP.AppContextSite(currentcontext, hostUrl);
		hostweb=hostcontext.get_web();
		
		fixNavgation();
		getSurvey();
		getProduct();
		getCustomer();
		getSelf();
		$("#btn_survey_add").click(function(){
			showModal();
			return false;
		});
		
		$("#btn_survey_add_submit").click(function(){
			addSurvey();
			return false;
		});
		
	});
	
	function showModal()
	{
	    $("#modal_survey_add").modal("show");
	}
	
	function addSurvey()
	{
		list = hostweb.get_lists().getByTitle("Surveys");
        var itemCreateInfo = new SP.ListItemCreationInformation();
        var item = list.addItem(itemCreateInfo);
        item.set_item("Title", $("#txt_survey_salesrepname").val());
        item.set_item("Cleanliness",$("#sel_survey_cleanliness").val());
		item.set_item("Lighting",$("#sel_survey_lighting").val());
		item.set_item("ShelfPlacement",$("#sel_survey_shelfplacement").val());
		item.set_item("AislePlacement",$("#sel_survey_aisleplacement").val());
		
		var customerValue = new SP.FieldLookupValue();
        customerValue.set_lookupId($("#sel_survey_customer").val());
		item.set_item("Customer",customerValue);
			
		var productValue = new SP.FieldLookupValue();
        productValue.set_lookupId($("#sel_survey_product").val());
		item.set_item("Product",productValue);
            
		item.update();

        currentcontext.load(item);
        currentcontext.executeQueryAsync(
            successAddHandler, 
            errorAddHandler
        );
	}
	
	function successAddHandler(data, req) {
		alert("添加成功!");
		$("#modal_survey_add").modal("hide");
		getSurvey();
		getProduct();
		getCustomer();
		
    }
	
	function errorAddHandler(sender, args) {
        alert("Error: " + args.get_message());
    }

	function getSurvey()
	{
		list = hostweb.get_lists().getByTitle("Surveys");
		var camlString = "";

        var camlQuery = new SP.CamlQuery();
        camlQuery.set_viewXml(camlString);
        allSurveys = list.getItems(camlQuery);

        currentcontext.load(allSurveys);

	    currentcontext.executeQueryAsync(
            successGetHandler, errorGetHandler
        );
	}
	
	function successGetHandler(data, req) {
		//alert(allSurveys.get_count());
        var surveysHTML = "";
        var enumerator = allSurveys.getEnumerator();
        
        while (enumerator.moveNext()) {
			
            var survey = enumerator.get_current();
            surveysHTML = surveysHTML +
                "<tr><td>" + survey.get_id() +
                "</td><td>" + survey.get_item("Title") +
				"</td><td>" + survey.get_item("Cleanliness") +
				"</td><td>" + survey.get_item("Lighting") +
				"</td><td>" + survey.get_item("ShelfPlacement") +
				"</td><td>" + survey.get_item("AislePlacement") +
				"</td><td>" + survey.get_item("Customer").get_lookupValue() +
				"</td><td>" + survey.get_item("Product").get_lookupValue() +
                "</td></tr>";
        }
        $("#survey_data_body").empty();
        document.getElementById("survey_data_body").innerHTML =
            surveysHTML;
    }
	
    function errorGetHandler(sender, args) {
        alert("Error: " + args.get_message());
    }
	
	function getProduct()
	{
		list = hostweb.get_lists().getByTitle("Products");
		var camlString = "";

        var camlQuery = new SP.CamlQuery();
        camlQuery.set_viewXml(camlString);
        allProducts = list.getItems(camlQuery);

        currentcontext.load(allProducts);

	    currentcontext.executeQueryAsync(
            successGetProductHandler, errorGetProductHandler
        );
	}
	
	function successGetProductHandler(data, req) {
        var productsHTML = "";
        var enumerator = allProducts.getEnumerator();
        
        while (enumerator.moveNext()) {
			
            var product = enumerator.get_current();
            productsHTML = productsHTML +
                "<option value='" + product.get_id() +  "'>" + product.get_item("Title") + "</option>";
        }
        $("#sel_survey_product").empty();
        document.getElementById("sel_survey_product").innerHTML =
            productsHTML;
    }
	
    function errorGetProductHandler(sender, args) {
        alert("Error: " + args.get_message());
    }
	/*加载下拉列表值*/
    function getSelf() {
        list = hostweb.get_lists().getByTitle("Surveys");

        field = currentcontext.castTo(list.get_fields().getByInternalNameOrTitle("Lighting"), SP.FieldChoice);

        currentcontext.load(field);

        currentcontext.executeQueryAsync(ReadChoiceSuccess, ReadChoiceFailure);

    }
    /*加载下拉列表值*/
    function ReadChoiceSuccess(sender, args) {

        var choices = field.get_choices();

        
    }

    function ReadChoiceFailure(sender, args) {

        alert("f")

    }
	function getCustomer()
	{
		list = hostweb.get_lists().getByTitle("Customers");
		var camlString = "";

        var camlQuery = new SP.CamlQuery();
        camlQuery.set_viewXml(camlString);
        allCustomers = list.getItems(camlQuery);

        currentcontext.load(allCustomers);

	    currentcontext.executeQueryAsync(
            successGetCustomerHandler, errorGetCustomerHandler
        );
	}
	
	function successGetCustomerHandler(data, req) {
        var customersHTML = "";
        var enumerator = allCustomers.getEnumerator();
        
        while (enumerator.moveNext()) {
			
            var customer = enumerator.get_current();
            customersHTML = customersHTML +
                "<option value='" + customer.get_id() + "'>" + customer.get_item("Title") + "</option>";
        }
        $("#sel_survey_customer").empty();
        document.getElementById("sel_survey_customer").innerHTML =
            customersHTML;
    }
	
    function errorGetCustomerHandler(sender, args) {
        alert("Error: " + args.get_message());
    }
	
	function getQueryStringParameter(paramToRetrieve) {
        var params =
            document.URL.split("?")[1].split("&");
        //var strParams = "";
        for (var i = 0; i < params.length; i = i + 1) {
            var singleParam = params[i].split("=");
            if (singleParam[0] == paramToRetrieve)
                return singleParam[1];
        }
    }
	
	function fixNavgation()
	{
		$("#href_product").attr("href","Products.aspx"+window.location.search);
		$("#href_customer").attr("href","Customers.aspx"+window.location.search);
		$("#href_survey").attr("href","Default.aspx"+window.location.search);
	}

})();

 

posted on 2015-05-04 23:30  !无名之辈  阅读(153)  评论(0)    收藏  举报