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

StackOverflow https://stackoverflow.com/questions/296609

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا أحاول تجنب تحكم مركب أو باستخدام وASCX من خلال توسيع عنصر تحكم موجود. ومع ذلك، أواجه مشكلة في الحصول على الضوابط تضاف إلى السيطرة الموروثة والحفاظ على وجهة نظرهم للدولة / سلامة بعد الظهر. كلما أضيف الضوابط خلال مرحلة ما قبل تقديم، والضوابط تظهر، ولكن بعد الظهر يطرح استثناء حالة العرض. حاولت إضافتها على حد سواء هناك، وخلال LoadViewState (والتي بالطبع كان طويل شوت سخيفة). التهيئة ليست متاحة من سيطرة أنا الذي يمتد.

<اقتباس فقرة>   

والاستثناء هو   Sys.WebForms.PageRequestManagerServerErrorException:   فشل تحميل viewsstate. السيطرة   شجرة في حالة العرض الذي يجري   تحميلها يجب أن يطابق شجرة التحكم   الذي تم استخدامه لحفظ حالة العرض خلال   الطلب السابق. فمثلا،   عند إضافة التحكم بشكل حيوي، و   ضوابط وأضافت خلال فترة ما بعد الظهر يجب   تتناسب مع نوع وموقف   التحكم المضافة خلال الأولية   طلب

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

المحلول

والواقع، وتقول مايكروسوفت يجب تجاوز في CreateChildControls الأسلوب.

ويمكنك استدعاء الأسلوب الفئة الأساسية قبل أو بعد إضافة الضوابط، وأنا لست متأكدا مما اذا كان هناك اتفاقية هناك.

protected override void CreateChildControls(){
  Controls.Add(someControl);
  base.CreateChildControls();
}

وعلى أمل أن يساعد!

نصائح أخرى

ويجب إضافتها في OnInit أو في CreateChildControls. على أي حال، لتجنب المشاكل مع حالة العرض، وقراءة هذه المادة عظيم . ربما، عينة "4. تهيئة عناصر التحكم التابعة برمجيا" هو قضيتك.

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