سؤال

أحتاج إلى إجراء النقر على عنوان عنصر القائمة لفتح نموذج التحرير، وليس نموذج العرض.للقيام بذلك اخترت استخدام المسؤولية الاجتماعية للشركات.

لدي الكود التالي:

(function () {
    var statusFieldCtx = {};

    statusFieldCtx.Templates = {};
    statusFieldCtx.Templates.Fields = {
        "Title": {"View": DataFieldViewTemplate},

    };

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(statusFieldCtx);
})();

function DataFieldViewTemplate(ctx) {       
    var data = ctx.CurrentItem.Title;
    console.log(data);      
}

لكنني لا أرى شيئًا في وحدة تحكم المتصفح.إذا قمت بتغيير الكود، فسيعمل هذا، لكن عمود العنوان غير موجود.

هذا هو الكود الذي تم تعديله:

(function () {
    var statusFieldCtx = {};

    statusFieldCtx.Templates = {};
    statusFieldCtx.Templates.Fields = {
        "dt_x0020_proximo_x0020_contato": {"View": DataFieldViewTemplate},

    };

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(statusFieldCtx);
})();

function DataFieldViewTemplate(ctx) {       
    var data = ctx;
    console.log(data);      
}

أسئلتي هي:هل هناك أي خطأ في الكود الخاص بي؟هل يمكنني أن أفعل ما أريد بطريقة مختلفة؟

هل كانت مفيدة؟

المحلول

يبدو أنك تحاول التخصيص LinkTitle مجال - Title (linked to item with edit menu), ، ولكن ليس أ Title مجال.

يوضح المثال التالي كيفية التقديم LinkTitle مع تعيين عنوان URL على "تحرير النموذج" بدلاً من "عرض النموذج":

(function () {


   function titleRenderer(renderCtx) {
       var item = ctx.CurrentItem;
       return '<a class="ms-listlink" onfocus="OnLink(this)" href="' + renderCtx.editFormUrl + '" onclick="EditLink2(this,' + renderCtx.ListTemplateType + ');return false;" target="_self">' + item.Title + '</a>';  
    }


    function registerRenderer()
    {
      var ctxTitleField = {};
      ctxTitleField.Templates = {};
      ctxTitleField.Templates.Fields = {
        "LinkTitle": {
            "View": titleRenderer
        }
      };

      SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctxTitleField);
    } 
    ExecuteOrDelayUntilScriptLoaded(registerRenderer, 'clienttemplates.js');

})();

نصائح أخرى

هو حقل العنوان في العرض الذي تحاول تطبيق هذا عليه؟يوجد بالفعل عددا من المتغيرات من حقل العنوان (على سبيل المثال مع القائمة (...)، لذا تأكد من إضافة واحدة ذات الاسم الداخلي للعنوان إلى رأيك.

أو استخدم المعلومات التي تحصل عليها من ctx.currentitem في مقتطف الرمز الثاني لديك للتحقق مما إذا كان هناك خاصية أخرى يمكنك استخدامها

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top