سؤال

ولدي قائمة داخل شير، وذلك باستخدام النموذج الجديدة المخصصة اضفت عنصر تحكم نموذج قائمة مخصصة ( "نموذج عنصر جديد" للقائمة) وغيرت SaveButton إلى زر الإدخال HTML القياسية، وأضاف إلى "عند _ النقر" الحدث الذي هو كما يلي:

onclick="javascript: {ddwrt:GenFireServerEvent('__commit;__redirect={NewFormWizard2.aspx?id=}')}"

وهذا يعمل في يحفظ البيانات والموجهات إلى NewFormWizard2.aspx معرف = الصفحة؟.

وكيف يمكنني الحصول على معرف عنصر تم إنشاؤه لتمريرها إلى صفحة إعادة توجيه؟

وهكذا بمجرد الانتهاء من الشكل الذي من شأنه إعادة توجيه إلى NewFormWizard2.aspx؟ ID = 23

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

المحلول 5

وجدت هذا النهج باستخدام جافا سكريبت النقي (مسج) ورمز SPAPI من http://darrenjohnstone.net/ .

وكانت القائمة تحتوي على حقلين العنوان وBodyCopy

ولقد thewn خلق النموذج الذي يسأل عن عنوان والسؤال، سواء حقول النص، ثم زر الإرسال باستدعاء الدالة التالية:. (لاحظ أن ServerAddress وLIST_question تحتاج إلى تحديث لبياناتك الخاصة)

وظيفة ثم بتحميل التفاصيل باستخدام خدمة SOAP داخل LISTS.ASMX واستخدام استجابة يحصل على معرف عنصر جديد وإعادة توجيه الصفحة.

var LIST_question = '{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}';
var ServerAddress = 'http://xxx/';

function submitQuestion()
    {
    var title = new String($("#title").val());
    var t = new String($("#question").val());
    t=t.trim();
    if(t=="")
        return;

    title=title.trim();
    if(title=="")
        return;


    var lists = new SPAPI_Lists(ServerAddress) ;
    // 
    var newItem = { Title :  title, BodyCopy : t};
    var items = lists.quickAddListItem(LIST_question, newItem); 
    var id=-1; 
    if (items.status == 200) 
    { 
        var rows = items.responseXML.getElementsByTagName('z:row');
        if(rows.length ==1)
        {
            var r = rows[0];
            var id = r.getAttribute('ows_ID'); 
            window.location.href='DispForm.aspx?ID='+id;

        }
        else
        {
            alert("Error: No row added");
        }


    } 
    else
    { 

        alert('There was an error: ' + items.statusText); 
        return;
    }
}

نصائح أخرى

وكان jtherkel قريب، ولكن في عداد المفقودين '}' في نهاية رابط إعادة التوجيه. أنا استخدم CONCAT اضافية أدناه

<input type="button" value="Submit" name="btnSave" onclick="javascript: {ddwrt:GenFireServerEvent(concat('__commit;__redirect={lists/MyListName/DispForm.aspx?ID=',/dsQueryResponse/Rows/Row/@ID,'}'))}" />

وأنا لست متأكدا من حيث وجود معرف على الصفحة التي تستضيف جافا سكريبت من. هل تظهر في سلسلة استعلام مواقع المعلومات أو في حقل على الصفحة؟

وليس هناك شيء في الطلب أو استجابة من شأنها أن تحدد هذا البند. لقد كان هذا المشكلة عند القيام ببعض loadtesting على شبكة الإنترنت.

ويمكنني أن أقترح فقط أن لديك إنشاء العنصر باستخدام خدمات ويب كما أنه في يمنحك بعض أكس العودة.

وهذا الجواب لا يحل "شكل جديد" قضية، لكنها قد تساعد الآخرين مع بناء الجملة للشاشات التي تحتوي على عناصر القائمة الموجودة.

واختبرت هذا بسرعة في بلدي شير (MOSS 2007) البيئة.

وعند _ النقر = "جافا سكريبت: {DDWRT: GenFireServerEvent (CONCAT ( '؟ __ ارتكاب؛ __ توجيه = {NewFormWizard2.aspx معرف ='، / dsQueryResponse / الصفوف / صف / @ ID))}"

وبناء الجملة CONCAT هو تعليم XSLT أن يقول المعالج للجمع بين القيم المغلقة في علامات الاقتباس المفردة. I تتكيف هذه الإجابة من المعلومات وجدت هنا.

وقيم تحميل في نموذج قائمة مخصصة http://wssdevelopment.blogspot.com/2007_04_01_archive.html

وآمل أن يكون هذا سيكون مفيدا: 1- في SharePoint Designer إنشاء صفحة جديدة، نسميها على سبيل المثال "LastItem.aspx" ووضع dataview عليه مع طريقة عرض نموذج واحد لعنصر القائمة الوجهة. 2-الحد الترحيل إلى سجل واحد فقط، تعيين الفرز بواسطة معرف وتنازلي وتصفية القائمة لتظهر فقط البند الذي تم إنشاؤه من قبل [المستخدم الحالي]. 3-الآن لا تحتاج إلى تمرير أي سلسلة الاستعلام إلى هذه الصفحة. مجرد استبدال الزر الافتراضي "OK" في NewForm.aspx القائمة مع زر الإدخال HTML القياسية وهذا إضافة إلى تعريفه "عند _ النقر =" جافا سكريبت: {DDWRT: GenFireServerEvent (CONCAT ( '__ ارتكاب؛ __ توجيه = {LastItem.aspx} "وبعد تقديم بند جديد إلى القائمة التي سيتم توجيهها إلى وجهة نظر تحرير من العنصر المنشأ. يمكنك أن تفعل الشيء نفسه بالنسبة لحفظ زر في LastItem.aspx لإعادة توجيه إلى بعض صفحة أخرى بعد النقر على زر حفظ.

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