asp.NET: How to access repeater generated elements? -


मेरे पास तालिका बनाने की तुलना में एक पुनरावर्तक है:

  & lt; itemtemplate & gt; & Lt; tr id = "theTableRow" runat = "सर्वर" & gt; & LT; टीडी & gt; & Lt; asp: LinkButton runat = "server" OnClientClick = "todo" पाठ = "कुछ करो" / & gt; & Lt; / टीडी & gt; & Lt; / टीआर & gt; & Lt; / ItemTemplate & gt;  

नोट: OnClientClick = "todo" लाइन

अंतिम रेंडर किए गए कोड में, मैं todo को एक जावास्क्रिप्ट समारोह में कॉल करने के लिए चाहता हूं, पासिंग:

  • उत्पन्न की आईडी तालिका पंक्ति, और
  • मौजूदा बाउंड ऑब्जेक्ट की संपत्ति का Eval

और अब कुछ छद्म कोड के लिए:

स्यूडोकोड 1:

OnClientClick = "कुछ कुछ (द टेबलररो, क्रॉममुलेंटगुइड); वापसी झूठी;"

स्यूडोकोड 2

स्यूडोकोड 3

OnClientClick = "जावास्क्रिप्ट: क्या कुछ (TheTableRow, CromulentGuid); वापसी झूठी;"

Pseudocode 3

OnClientClick = " जावास्क्रिप्ट: क्या कुछ (टीटेरेआरओ, & lt;% # Eval ("CromulentGuid")%>); वापस लौटाना; "

स्यूडोकोड 4

OnClientClick =" Javascript: doSomething (& lt;% = theTableRow%>, & lt;% # Eval ("क्रॉममुलेंटगुइड"%>); वापसी झूठी; "

स्यूडोकोड 5

OnClientClick = 'जावास्क्रिप्ट: DoSomething (& lt;% = Eval (TheTableRow)%>, & lt;% # Eval ("CromulentGuid")%>); वापसी वाली झूठी; '

एएसपी.एन.टी.टी. कोड जो भी इस्तेमाल किया जाता है, मुझे यह प्रदान करना चाहिए HTML:

  & lt; tr id = "ctl00__itemrepeater_ctl01_thetablerow" & gt; & LT; टीडी & gt; & Lt; एक onclick = "दोसोमिंग ('ctl00__itemrepeater_ctl01_thetableRow', '19a149db-5675-4eee-835d-3d78372ca6f9'); वापसी झूठी;" href = "जावास्क्रिप्ट: __ doPostBack ( 'ctl00 $ itemRepeater $ ctl01 $ ctl04', '')" & gt; कुछ करें & lt; / a & gt; & Lt; / टीडी & gt; & Lt; / टीआर & gt;  

मैं भी साथ ठीक होगा:

  & lt; tr id = "ctl00__itemrepeater_ctl01_thetableRow" & gt; & LT; टीडी & gt; & Lt; एक onclick = 'DoSomething (& amp; quot; ctl00__itemRepeater_ctl01_theTableRow & amp; quot ;, & amp; quot; 19a14 9 db-5675-4eee-835d-3d78372ca6f9 & amp; quot;); विवरण झूठा है;' href = "जावास्क्रिप्ट: __ doPostBack ( 'ctl00 $ itemRepeater $ ctl01 $ ctl04', '')" & gt; कुछ करें & lt; / a & gt; & Lt; / टीडी & gt; & Lt; / टीआर & gt;  

ध्यान दें: मैं दूसरी प्रपत्र से ठीक हूं क्योंकि मुझे पता है कि यह कार्यात्मक रूप से समान है, और एएसपी.NET कोड पूर्व उत्पन्न नहीं कर सकता, भले ही उत्तरार्द्ध कम पठनीय है।


संबंधित प्रश्न:

आप अपने कोड में प्रत्येक तत्व को बदलने के लिए OnItemDataBound ईवेंट का उपयोग कर सकते हैं चूंकि आप एचटीएमएल के बारे में विशेष कर रहे हैं इसलिए मैं एस्प नियंत्रण के बजाय हाइब्रिड नियंत्रणों का उपयोग करने की सिफारिश कर सकता हूं। उदाहरण के लिए:

  & lt; itemtemplate & gt; & Lt; tr id = "theTableRow" runat = "सर्वर" & gt; & LT; टीडी & gt; & Lt; एक runat = "सर्वर" onclick = "todo (यह पीपीडीपी, '& lt;% # Eval (" प्रॉपर्टी ")% & gt;'); वापसी वापस;; & Gt; कुछ करें & lt; / a & gt; & Lt; / टीडी & gt; & Lt; / टीआर & gt; & Lt; / ItemTemplate & gt; यह शायद 100% सही नहीं है, जैसा कि मैंने इसे सीधे उत्तर विंडो में लिखा था और मैंने हमेशा अपना पहला कदम पर Eval () सिंटैक्स को स्क्रू किया था, लेकिन यह कुछ मदद करनी चाहिए । 


Comments