9

में एएसपी.नेट के लिए पेज इवेंट्स कैसे जोड़ूं यह विजुअल स्टूडियो प्रश्न का थोड़ा सा है। मैं सभी सहायक इंटेलिजेंस के साथ महसूस करता हूं कि सहायता करने के लिए कुछ होना चाहिए लेकिन मुझे यह प्रतीत नहीं होता है।मैं विजुअल स्टूडियो 2008

मैंने वीएस -2008 में एएसपी.NET सी # में कोडबेंड के साथ एक पृष्ठ बनाया और यह निश्चित रूप से पेज लोड ईवेंट विधि को स्वत: उत्पन्न करता है। खैर, अगर मैं पेजलोड के अलावा और अधिक घटनाओं के तरीकों को जोड़ना चाहता हूं तो क्या होगा? मुझे लगता है कि संभावित विधि ईवेंट हैंडलर जोड़ने के Foo.aspx पृष्ठ पर कुछ सूची होगी। पेजिनिट, पेज डिस्प्ले, (या इक्विव) इत्यादि की तरह कहीं और नहीं हो सकता है ...? इन्हें कहां खोजा जा सकता है?

संपादित करें - मैं निश्चित रूप से एपीआई में विधि नाम देख सकता हूं। मैं विजुअल स्टूडियो में इन्हें जोड़ने के लिए एक आसान शॉर्टकट ढूंढ रहा हूं। अगर यह एक उत्पन्न करता है, तो क्या यह दूसरों को नहीं बना सकता?

उत्तर

26
  • समाधान Explorer में, सही पेज पर क्लिक करें और संदर्भ मेनू से "देखें घटक डिजाइनर"
  • गुण पैनल/विंडो खोलने (प्रेस F4)
  • अब पीले तीर पर क्लिक करें/फ़्लैश आइकन और आप सभी पेज घटनाओं की एक सूची दिखाई देगी
  • घटना है जिसके लिए आप कोई हैंडलर जोड़ना चाहते हैं डबल क्लिक करें

मैं बहुत यकीन है कि वहाँ एक और डब्ल्यू था हूँ एई (डिजाइनर व्यू से शुरू), लेकिन मैं इसे पुन: उत्पन्न नहीं कर सकता।

मैं आमतौर पर पेज इवेंट हैंडलर का उपयोग नहीं करता, इसके बजाय मैं संबंधित विधियों को ओवरराइड करता हूं (उदा। Page_Load के बजाय OnLoad)। इनमें से एक ओवरराइड को कार्यान्वित करने के लिए, आप कोड-बैक में बस "ओवरराइड" टाइप कर सकते हैं और स्पेस दबा सकते हैं ताकि आप ओवरराइड कर सकने वाली विधियों की एक सूची प्राप्त कर सकें।

+0

वर्क्स सेट हो जाएगा! –

3

क्या उपलब्ध है यह देखने के लिए शॉर्टकट के रूप में, आप हमेशा "पेज" टाइप कर सकते हैं। और फिर इंटेलिजेंस में एक सूची देखें। फिर आप एक चुन सकते हैं, हिट + = टैबटैब यह आपके लिए स्टब उत्पन्न करने के लिए कर सकता है। एक बार स्टब बनने के बाद, आपको इसे "पेज.वेन्ट + =" लाइन को हटाना होगा जहां भी आपने इसे बनाया था। एक होकी कामकाज की तरह, लेकिन जब आप इसे लटकते हैं तो बहुत तेज़ी से काम कर सकते हैं।

+0

होकी लेकिन पॉकी नहीं - जल्दी और याद रखने में आसान काम करता है। धन्यवाद! – McArthey

+0

यह अच्छी तरह से काम करता है। चूंकि ईवेंट को 'पेज' नामक संदर्भ से संभाला जा रहा है, इसलिए जेनरेटेड इवेंट हैंडलर को आकस्मिक रूप से नामित किया जाता है, यानी' लोड 'ईवेंट के लिए' पृष्ठ_ लोड '। एकमात्र मुश्किल हिस्सा यह है कि इसे "विधि स्कोप" से किया जाना है क्योंकि आप कक्षा के दायरे में 'पृष्ठ' संपत्ति तक नहीं पहुंच सकते हैं। –

3
अमूल्य ReSharper इंस्टॉल होने के बाद

(बिना काम कर सकते हैं) मैं तो बस लिख सकते हैं:

override 

और जब मैं हिट अंतरिक्ष Intellisence कि मैं OnInit, OnPreRender रूप में इस तरह ओवरराइड कर सकते हैं सभी घटनाओं की एक सूची के साथ पॉप अप होता है , आदि

+1

वीएस -2010 में, मेरे पास रीशेपर स्थापित नहीं है और ऐसा लगता है कि यह किसी भी तरह से ऐसा करता है। मुझे लगता है कि यहां तक ​​कि यहां वर्णित सभी का यह सबसे आसान तरीका है। –

+0

यह काम करता है, लेकिन घटनाओं को संभालने और ऑन_ विधियों को ओवरराइड करने के बीच सूक्ष्म मतभेद हैं। –

0

ऑब्जेक्ट सूची कॉम्बो बॉक्स से स्रोत कोड विंडो में, वांछित नियंत्रण (पृष्ठ) का चयन करें। फिर ईवेंट सूची कॉम्बो बॉक्स से जो पिछले ऑब्जेक्ट सूची के दाईं ओर है कॉम्बो बॉक्स वांछित ईवेंट का चयन करें। विजुअल स्टूडियो आपके लिए इवेंट हैंडलर बनाएगा।

0

एक के रूप में M4N द्वारा लेकिन कोड के माध्यम से वर्णित तरीके से उपयोग नहीं करना चाहता है:

PageName.aspx में।सीएस;

private void InitializeComponent() 
{ 

    // this.LifeCycle += .. // Use intellisense to see alternatives easily 
    this.PreRender += new System.EventHandler(this.EventFunctionName); 

} 

तो एक ही फाइल में जोड़ें:

private void EventFunctionName(object sender, EventArgs e) 
{ 
    // Code.. 
} 

अद्यतन (टिप्पणी से Sahuagin से): यह उचित नाम के साथ एक ईवेंट हैंडलर नहीं होगी। इवेंट हैंडलर का नाम होना चाहिए, उदाहरण के लिए, पेज_लोड। यह पेज के बजाए आपकी कक्षा के बाद इसका नाम रखेगा, और इसलिए इसे वास्तव में आपके पृष्ठ

+0

इसके अलावा, यह उचित नाम के साथ एक ईवेंट हैंडलर उत्पन्न नहीं करेगा, या तो। इवेंट हैंडलर का नाम होना चाहिए, उदाहरण के लिए, 'पेज_लोड'। यह इसे 'पृष्ठ' के बजाए आपकी कक्षा के बाद नामित करेगा, और इसलिए यह वास्तव में आपके पृष्ठ पर नहीं लगाया जाएगा। –

+0

मैंने मूल रूप से कहा था कि ईवेंट हैंडलर 'संरक्षित' होना चाहिए और 'निजी' नहीं होना चाहिए। स्थिति के आधार पर यह आवश्यक हो सकता है या नहीं भी हो सकता है। –

+0

धन्यवाद, मैंने इसे पोस्ट में भी जोड़ा है –

-1

TreeScheme.Nodes [0] .ल्डल्डोड्स [0]। चेक = सही;

treeviewid.node[0].childnodes[0].checked=true; 

यह बच्चा नोड पेज

खुश के पेज लोड घटना में सच की जाँच की कोडिंग VS2017 में

+0

क्या? जब तक कि मैं गलत नहीं हूं, इस सवाल के साथ कुछ भी नहीं है –