zoukankan      html  css  js  c++  java
  • SharePonit online 列表表单定制

    1)在O365管理中心,确保启用了站点脚本定制,否则,网站不允许将页面切换到编辑模式。

    2)Ribbon上,列表-》表单web部件-》编辑窗体

    如果没有Ribbon,则到列表高级设置,启用经典UI

    3)编辑表单webpart,设置其表单模板名称为CSRListForm, 默认的ListForm,只能支持定制某个字段,不支持定制整个Layout

    4)增加脚本编辑器Web部件,里面写脚本,很多文章都讲了CSR机制.

    ref:https://code.msdn.microsoft.com/office/CSR-code-samples-11-Fully-54ebcaa6

    <script>
    
    
    // List Forms – User CSRListForm Server Tempalte 
    // Muawiyah Shannak , @MuShannak  
      
    (function () {  
      
        // Create object that have the context information about the field that we want to change it's output render   
        var formTemplate = {}; 
        formTemplate.Templates = {}; 
        formTemplate.Templates.Item= viewTemplate; 
      
        SPClientTemplates.TemplateManager.RegisterTemplateOverrides(formTemplate); 
      
    })();  
      
    // This function provides the rendering logic for the Custom Form 
    function viewTemplate(ctx) { 
         
        var formTable = "".concat("<table width='100%' cellpadding='5'>", 
                                        "<tr>", 
                                            "<td><div>Title</div></td>", 
                                            "<td><div>{{TitleCtrl}}</div></td>", 
                                            "<td><div>CompanyCtrl</div></td>", 
                                            "<td><div>{{CompanyCtrl}}</div></td>", 
                                        "</tr>", 
                                        "<tr>", 
                                            "<td><div>Category</div></td>", 
                                                "<td><div>{{CategoryCtrl}}</div></td>", 
                                            "<td><div>Active</div></td>", 
                                            "<td><div>{{ActiveCtrl}}</div></td>", 
                                        "</tr>", 
                                        "<tr>", 
                                            "<td></td>", 
                                            "<td><input type='button' value='Save' onclick="SPClientForms.ClientFormManager.SubmitClientForm('{{FormId}}')" style='margin-left:0' ></td>", 
                                        "</tr>", 
                                  "</table>"); 
     
         
        //Replace the tokens with the default sharepoint controls 
        formTable = formTable.replace("{{TitleCtrl}}", getSPFieldRender(ctx, "Title")); 
      formTable = formTable.replace("{{CompanyCtrl}}", getSPFieldRender(ctx, "Company")); 
      //  formTable = formTable.replace("{{CategoryCtrl}}", getSPFieldRender(ctx, "Category")); 
       // formTable = formTable.replace("{{ActiveCtrl}}", getSPFieldRender(ctx, "Active")); 
        formTable = formTable.replace("{{FormId}}", ctx.FormUniqueId); 
     
        return formTable; 
    } 
     
    //This function code set the required properties and call the OOTB (default) function that use to render Sharepoint Fields  
    function getSPFieldRender(ctx, fieldName) 
    { 
        var fieldContext = ctx; 
     
        //Get the filed Schema 
        var result = ctx.ListSchema.Field.filter(function( obj ) { 
            return obj.Name == fieldName; 
        }); 
     
        //Set the field Schema  & default value 
        fieldContext.CurrentFieldSchema = result[0]; 
        fieldContext.CurrentFieldValue = ctx.ListData.Items[0][fieldName]; 
    
    if(ctx.Templates.Fields[fieldName]==null)
    return "";
     
        //Call  OOTB field render function  
        return ctx.Templates.Fields[fieldName](fieldContext); 
    } 
    
    </script>
    

      

  • 相关阅读:
    常见sql注入的类型
    sql-labs 18-20(sqlmap注入)
    sqli-labs11-17(手注+sqlmap)
    Android Zygote进程启动分析
    android点击桌面App图标activity启动流程
    Android启动过程
    android主线程ActivityThread
    mac上写c++
    Gradle发布项目到 maven 之novoda/bintray-release(3)
    Gradle发布项目到 maven 之gradle-bintray-plugin(2)
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/7868200.html
Copyright © 2011-2022 走看看