سؤال

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

يستخدم ويببارت ب هذه القائمة لملء دروبدوونبوكس.كلما تم تغيير سيلكتدفالو يجب تحديث ويببارت ج.هذا هو إعلان السيطرة.

_documentTypeList = new DropDownList();
_documentTypeList.AutoPostBack = true;
this.Controls.Add(_documentTypeList);

المشكلة هنا هي أن استخدام

_documentTypeList.AutoPostBack = true;

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

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

المحلول

يمكن إجراء عمليات حفظ حالة الجلسة باستخدام:

    public string Name
    {
        get
        {
            return Page.Session["SaveName"] as string;
        }
        set
        {
            Page.Session["SaveName"] = value;
        }
    }

هذا هو جالبة / واضعة لحفظ / الحصول عليها من حالة الدورة

لاستخدام هذا القيام بما يلي:

هذا يحصل على القيمة من حالة الجلسة (يجب أن يكون في حدث أونبريندر لرؤية فاريبلز حالة الجلسة)

txtName.Text = Name;

يتم تعيين هذا في حالة الجلسة (يمكن أن يكون في أي مكان تريد حفظه في حالة الجلسة)

Name = txtName.Text;

ل إنت فالوس:

كاهنج public string Name إلى public int Name والشيء نفسه ينطبق على أي شيء آخر مثل القيم المنطقية إلخ.

لذلك سوف تبدو مثل هذا ل إنت:

    public int Name
    {
        get
        {
            return Page.Session["SaveName"] as int;
        }
        set
        {
            Page.Session["SaveName"] = value;
        }
    }

كما لاحظ آخرون للبيانات التي سيتم تمريرها بين ويببارت يجب أن تستخدم طريقة إينتيرفاس:

توفير (بيانات إرسال جزء الويب) للمستهلك (جزء الويب باستخدام تلك البيانات) والواجهة التي هي الاتصال بين أجزاء الويب:

ما سبق سوف يعمل بنسبة 100 ٪ ويحفظ قيمك على إعادة النشر :)

فقط طارئ كنت بحاجة إلى هذا؛) نشر الرابع بعض الروابط على الاتصالات أدناه.

مشاكل جزء ويب للاتصال......................?

و

اتصال بين 2 أجزاء الويب

آمل أن يساعد :)

نصائح أخرى

هل حاولت if (!Page.IsPostBack) { your code here } ?

هل حاولت إنشاء اتصال جزء ويب مخصص لغرضك؟قد يكون هذا الشرط الخاص بك هو الخيار الأكثر ملاءمة

سابقا أجزاء الويب حيث تتصل بالترتيب التالي. giveacodicetagpre.

هذا خلق خطأ إذا أردت استدعاء كلا القيم في WebPart C عندما غيرت القيمة في WebPart B. عندما تم تغيير قيمة WebPart B، كان مطلوبا لإعادة تحميل الصفحة وإعادة تحميل WebPart. لأن WebPart A كان القيمة التي يتم إنشاؤها على تفاعل المستخدم وليس في تحميل الصفحة تم فقد القيمة. تم ضبط WebPart B و WebPart C على الوظيفة دون قيمة WebPart A. إذا كنت ترغب في الاحتفاظ باتصال WebPart كما هو موضح أعلاه، فيرجى التحقق من إجابة ما appnalsharepointmaster.

لأنه في حالتي WebPart لإنشاء رمز تسجيل دخول فريد، فأفضل عدم حفظه إلى الصفحة. أفضل الحفاظ عليه مع WebParts. للقيام بذلك غيرت الاتصال بينهما. بدلا من ذلك أعلاه اتصال استخدم الاتصال التالي. giveacodicetagpre.

WebPart B يحفظ قيمة webpart A ويوفرها مع قيمته الخاصة إلى WebPart C. هذه هي الطريقة التي تبدو واجهة WebParts B. giveacodicetagpre.

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