2008-10-24 11 views
21

पर चयन मापदंडों मैं इस तरह रनटाइम पर एक ObjectDataSource में पैरामीटर जोड़ने कोशिश कर रहा हूँ की स्थापना करना:मैं कैसे ObjectDataSource क्रम

 Parameter objCustomerParameter = new Parameter("CustomerID", DbType.String, customerID); 
     Parameter objGPDatabaseParameter = new Parameter("Database", DbType.String, gpDatabase); 

     //set up object data source parameters 
     objCustomer.SelectParameters["CustomerID"] = objCustomerParameter; 
     objCustomer.SelectParameters["Database"] = objGPDatabaseParameter; 

ObjectDataSource जीवन चक्र में किस बिंदु पर इन मानकों जोड़ा जाना चाहिए (क्या घटना)? साथ ही, कुछ मान मास्टर पेज प्रॉपर्टी से आ रहे हैं (जो के बाद ऑब्जेक्टडेटा स्रोत वाले पृष्ठ का पृष्ठ_लोड लोड करता है)।

उत्तर

34

उन ऑपरेशन के लिए उन्हें जोड़ें जिन्हें आप उपयोग करने का प्रयास कर रहे हैं। उदाहरण के लिए, यदि ये पैरामीटर SELECT कमांड का हिस्सा हैं तो उन्हें चयन ईवेंट में जोड़ें, अगर उन्हें UPDATE कमांड के साथ जाने की आवश्यकता है तो उन्हें अद्यतन ईवेंट पर जोड़ें।

ऑब्जेक्टडाटासोर्स प्रत्येक ऑपरेशन करने से पहले एक ईवेंट उठाता है, तब जब आप पैरामीटर डालें (या मौजूदा पैरामीटर को मान्य/परिवर्तित कर सकते हैं)।

इसके अलावा, ओडीएस के पैरामीटर संग्रह को स्वयं भी कोशिश न करें और संशोधित न करें। आप इवेंट हैंडलर को पास ऑब्जेक्टडाटासोर्स चयन चुनने के लिए अपने पैरामीटर जोड़ना चाहते हैं।

कुछ की तरह:

e.InputParameters["CustomerID"] = customerId; 
e.InputParameters["database"] = dbName; 
+1

धन्यवाद, लेकिन ऐसा लगता है कि मानकों संग्रह केवल पढ़ने के लिए गया था। क्या उस ईवेंट हैंडलर में मान सेट करने का कोई तरीका है? – TheEmirOfGroofunkistan

+0

हां, मेरा संपादन देखें। आप ईवेंट तर्क के इनपुट पैरामीटर सदस्य को संशोधित करना चाहते हैं। –

+0

भयानक, उदाहरण के लिए धन्यवाद। यह सहज नहीं था क्योंकि मुझे लगता है कि यह हो सकता है। – TheEmirOfGroofunkistan

3

जितनी जल्दी हो सके जोड़ें; PreInit घटना पर। यह प्रारंभिकरण का हिस्सा है इसलिए वहां किया जाना चाहिए।

अधिक जानकारी के लिए ASP.NET Page Life Cycle Overview देखें।

संबंधित मुद्दे