سؤال

أقوم حاليًا بنقل SP Farm-Solution المستخدم داخليًا من عام 2010 إلى عام 2013 وأواجه صعوبة في التعامل مع المفهوم الجديد لـ JsLink.

في حل 2010 قمنا بالكتابة فوق ملف RenderingTemplate ListForm لاحتواء أ زر حفظ وإغلاق مخصص بنيت من قبلنا.الآن مع SP2013، توجد روابط JsLinks الجديدة التي يمكنها التعامل مع هذا الأمر.

كنت أفكر في إنشاء ميزة بمستقبل حدث خلفها، والذي عند تنشيطه يغير خاصية JsLink لجميع أنواع المحتوى على الويب الحالي ويسجل ملف جافا سكريبت الخاص بنا.

ومع ذلك، فإن جميع البرامج التعليمية/إدخالات المدونة التي وجدتها حتى الآن تشرح فقط "كيفية تخصيص عرض الحقل الخاص بك باستخدام JsLink" وليس كيفية تغيير أشياء مثل مظهر زر الحفظ.

هل هناك شخص يمكنه مساعدتي هنا؟لقد قمت بالبحث لمدة يوم بالفعل ولم أتمكن من العثور على أي شيء مفيد حتى الآن.

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

المحلول

يمكنك استخدام الحدث "PostRender" لتنفيذ طريقة جافا سكريبت بعد تحميل النموذج بالكامل، مثل:

(function () {
    // Initialize the variable that stores the objects.
    var overrideCtx = {};
    overrideCtx.Templates = {};

    // Assign a function to handle the
    // PostRender events
    overrideCtx.OnPostRender = postRenderHandler;

    // Register the template overrides.
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();

// The postRenderHandler attends the OnPostRender event
function postRenderHandler(ctx) {

    // You can manipulate the DOM in the postRender event
    var ulObj;
    var i, j;

    ulObj = document.getElementById("unorderedlist");

    // Reverse order the list.
    for (i = 1; i < ulObj.children.length; i++) {
        var x = ulObj.children[i];
        for (j = 1; j < ulObj.children.length; j++) {
            var y = ulObj.children[j];
            if(x.innerText<y.innerText){                  
                ulObj.insertBefore(y, x);
            }
        }
    }
}

هذا مثال معدل للكود الموجود هنا http://msdn.microsoft.com/en-us/library/office/jj220045%28v=office.15%29.aspx, ، يمكنك الحصول على مزيد من المعلومات وبعض الأمثلة على التعليمات البرمجية (على سبيل المثال استهداف طرق عرض محددة وما إلى ذلك).

لا يزال بإمكانك إرفاق هذا بحقل واحد ومن خلال تنفيذ PostRender، سيكون لديك هذا التنفيذ في جميع العروض بما في ذلك هذا الحقل وما إلى ذلك.

لمعرفة كيفية توجيه JSLink الخاص بك إلى NewForm أو EditForm فقط، راجع هذه الإجابة الأخرى بواسطتي: تخصيص newform.aspx لقائمة باستخدام jslink في SharePoint 2013

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