Sharepoint 2013:站点列上的CRUD操作

时间:2015-04-27 14:23:07

标签: sharepoint sharepoint-2013 crud site-column

到目前为止,我能够对列表执行CRUD操作,我想知道是否可以在站点列上执行此操作,我尝试在网络上找到它但我几乎没有发现任何内容我在这里专门提出一个问题,只是为了了解它是否可能,如果有可能,请任何人为我提供一些资料,以便我可以学习?提前谢谢。

2 个答案:

答案 0 :(得分:1)

这正是你所需要的,我几周前就已经完成了它的工作。

var ctx;
        var web;
        var fieldChoice;
        var fieldName;
        var values;

        $(function () {
            SP.SOD.executeOrDelayUntilScriptLoaded(Function.createDelegate(this, function () {
                fieldName = $('#dropdown').find(":selected").text();
                populateValues(fieldName);
            }), 'SP.js');
        });

        function selection() {
            fieldName = $('#dropdown').find(":selected").text();
            populateValues(fieldName);
        }

        function populateValues(fieldName) {
            ctx = SP.ClientContext.get_current();
            web = ctx.get_web();
            fieldChoice = ctx.castTo(web.get_availableFields().getByTitle(fieldName), SP.FieldChoice);
            ctx.load(this.fieldChoice);
            ctx.executeQueryAsync(Function.createDelegate(this, this.OnLoadSuccess), Function.createDelegate(this, this.OnLoadFailed));
        }
        /* Displays the vaules of the array in the textarea */
        function OnLoadSuccess() {
            values = fieldChoice.get_choices();
            $("textarea#textareadisplay").val(values.join("\n"));

        }

        function OnLoadFailed(e, args) {
            alert();
        }

        /* Push the textarea values in an array */
        function addItemsToColumns() {
            values = $('textarea#textareadisplay').val().split('\n');
            columnSpaceDelete();
            updateFieldChoice();
        }

        /* Function to delete empty values in the array */
        function columnSpaceDelete() {
            for (x = 0; x <= values.length - 1; x++) {
                var a = values.indexOf("");
                if (a !== -1) {
                    values.splice(a, 1);
                }
            }
        }

        /* Update the columns values whit the values in the array */
        function updateFieldChoice() {
            fieldChoice.set_choices(values);
            fieldChoice.update();
            ctx.executeQueryAsync(function () { }, function () { });
        }

相对HTML:

<select id="dropdown" name="dropdown" onchange="selection()">
            <option value="EngineType_Cylinders">EngineType_Cylinders</option>
            <option value="EngineType_EngineCycle">EngineType_EngineCycle</option>
            <option value="EngineType_EngineFamily">EngineType_EngineFamily</option>
            <option value="EngineType_Euro">EngineType_Euro</option>
            <option value="EngineType_FamilyEvolution">EngineType_FamilyEvolution</option>
            <option value="EngineType_GasEmissionLevel">EngineType_GasEmissionLevel</option>
            <option value="EngineType_Power">EngineType_Power</option>
            <option value="EngineType_PowerSupply">EngineType_PowerSupply</option>
            <option value="EngineType_Use">EngineType_Use</option>
        </select><br />

        <textarea id="textareadisplay"></textarea><br />
        <input type ="button" id="updatebtn" value="Update values" onclick="addItemsToColumns()" />

答案 1 :(得分:0)

在MSDN网站上,您可以找到有关CSOM的有用信息:

How to: Complete basic operations using JavaScript library code in SharePoint 2013 How to: Complete basic operations using JavaScript library code in SharePoint 2013

在第二个链接上,您可以找到有关CRUD operation on Lists

的线索

如果您想对网站列的设置执行操作,您可以在MSDN FieldCollection methods上看到。

javascript还有等效的命名空间。

基本上您可以使用AddFieldAsXml添加站点列,您可以使用方法GetByID(或标题或内部名称)进行更新/删除,并对返回的Field执行操作。