2011-08-25 12 views
8

ठीक है, मैं गतिशील रूप से बनाए गए नियंत्रण की आईडी के बारे में बहुत उलझन में हूं।आईडी बनाम अनोखा आईडी बनाम क्लाइंट आईडी बनाम UniqueClientID बनाम StaticClientID?

Public Class TestClass 
    Inherits Panel 
    Implements INamingContainer 

    Function TestClassInit() Handles Me.Init 

     Dim pnlMainPanel As New Panel 
     Me.Controls.Add(pnlMainPanel) 

     Dim pnlTest1 As New Panel 
     pnlMainPanel.Controls.Add(pnlTest1) 

     pnlTest1.ClientIDMode = UI.ClientIDMode.Inherit ' DEFAULT 
     'pnlTest1.ID = "ctl01" 
     'pnlTest1.UniqueID = "ctl00$MainPanel$ctl01" 
     'pnlTest1.ClientID = "MainPanel_ctl01" 
     'pnlTest1.UniqueClientID = "ctl00_MainPanel_ctl01" 
     'pnlTest1.StaticClientID = "" 

     pnlTest1.ClientIDMode = UI.ClientIDMode.Predictable 
     'pnlTest1.ClientID = "MainPanel_ctl01" (no change) 

     pnlTest1.ClientIDMode = UI.ClientIDMode.AutoID 
     'pnlTest1.ClientID = "ctl00_MainPanel_ctl01" 

     pnlTest1.ClientIDMode = UI.ClientIDMode.Static 
     'pnlTest1.ClientID = "" 

    End Function 
End Class 

क्यों 5 अलग-अलग आईडी ??

आपको विभिन्न आईडी मोड का उपयोग कब करना चाहिए?

(मैं MSDN डॉक्स पढ़ें, लेकिन वे थे, हमेशा की तरह, विशेष रूप से रोशन नहीं।)

मैं क्या आईडी है परवाह नहीं है, तो और सिर्फ एक नियंत्रण & देना जोड़ना चाहते हैं अपने एक गतिशील रूप से जोड़ा AJAX विस्तारक के लिए आईडी, मैं किस मोड/आईडी कॉम्बो का उपयोग करना चाहिए?

+0

यदि आप एड्स की देखभाल नहीं करते हैं तो उन्हें पहले स्थान पर क्यों जोड़ें – Baz1nga

+1

मुझे लगता है कि .NET के लिए एमएसडीएन दस्तावेज़ों की तुलना में बहुत अच्छा है ... उदाहरण के लिए शेयरपॉइंट –

उत्तर

16
  • आईडी आपके सर्वर में उपयोग की जाने वाली सर्वरसाइड आईडी है।
  • अनन्य आईडी जेनरेट किए गए HTML तत्व के "नाम" विशेषता से मेल खाता है।
  • क्लाइंट आईडी जेनरेट किए गए HTML तत्व की "आईडी" विशेषता से मेल खाता है। तो यह निर्भर करता है कि आपको कौन सी विशेषता है (नाम फॉर्म पोस्ट के साथ भेजा गया है, आईडी को डीओएम मैनिपुलेशन के लिए उपयोग किया जाता है)।
  • सुनिश्चित नहीं हैं कि uniqueclientid है :)

ASP.Net 4 कहते हैं clientIdMode जो आप serverside आईडी से मेल करने के लिए (और इस प्रकार अधिक उम्मीद के मुताबिक हो) आप "स्थिर के लिए सेट करता है, तो आईडी गुण के लिए मजबूर करने की अनुमति देता है "।

+1

यह शायद ध्यान दिया जाना चाहिए कि कोड के पीछे, क्लाइंट आईडी और 'अनोखा आईडी' दोनों गेटर्स और रीडोनली हैं, जबकि 'आईडी' रीड-राइट और सेटटेबल है। – johntrepreneur

1

क्लाइंट आईडी संपत्ति का उपयोग करें।

क्लाइंट आईडीडोड नियंत्रण द्वारा उपयोग की जाने वाली वास्तविक आईडी को 100% सेट करने की क्षमता का समर्थन करने के लिए है। आपकी पंसद। असल में यह जावास्क्रिप्ट कोड लिखने में सहायता करता है।

1

क्लाइंट आईडीमोड को एएसपी.NET 4 में जोड़ा गया था ताकि आप इसे नियंत्रित कर सकें। यह विशेष रूप से jQuery जैसे क्लाइंट साइड लाइब्रेरीज़ के लिए उपयोगी है। एएसपी.नेट का जादू नियंत्रण की विशिष्टता पर निर्भर करता है। यदि आपने स्टेटिक का उपयोग करने का निर्णय लिया है तो सुनिश्चित करें कि वे अद्वितीय हैं, क्योंकि आपको सड़क के नीचे कुछ अप्रत्याशित रनटाइम त्रुटियों का सामना करना पड़ सकता है।

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