2011-01-31 17 views
5

मैंने अपनी स्थिति से संबंधित कई प्रश्नों के माध्यम से पढ़ा है लेकिन मुझे ऐसा कोई नहीं मिला है। मेरे पास वर्तमान में 4 बाध्य वस्तुओं के साथ दोहराना है, दोहराने वाले बटन पर क्लिक करने से मेरी त्रुटि का कारण बनता है, नीचे मार्कअप और कोडबेइंड है। क्या कोई मुझे समझा सकता है कि यह क्यों हो रहा है और इसके लिए ठीक है? (मैं पेज decleration बाहर कर दिया है और सिर्फ Page_Load घटना भी शामिल है। मुझे पता है अगर मैं कट और अतीत पूर्ण कोड चाहिए)पुनरावर्तक नियंत्रण अमान्य पोस्टबैक या कॉलबैक तर्क

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:Repeater ID="rptFoo" runat="server"> 
     <ItemTemplate> 
     <asp:Button ID="btnfoo" runat="server" /> 
     </ItemTemplate> 
    </asp:Repeater> 
    </div> 
    </form> 
</body> 
</html> 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
Dim items As New List(Of String) 
items.Add("test1") 
items.Add("test2") 
items.Add("test3") 
items.Add("test4") 
rptFoo.DataSource = items 
rptFoo.DataBind() 
End Sub 
+2

डाटाबेस नियंत्रण के साथ ["अमान्य पोस्टबैक या कॉलबैक तर्क" का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/293699/invalid-postback-or-callback-argument-with-databound-controls) – AakashM

उत्तर

0
मेरे सवाल का जवाब

मैं यहां जवाब दोहरा दूंगा, इसलिए आपको

से लिंक करने की आवश्यकता नहीं है समस्या पृष्ठ लोड में नियंत्रण के लिए डेटा लोड कर रहा है और डेटाबिंड() विधि को कॉल कर रहा है। हालांकि ऐसा प्रतीत होता है कि यदि घटनाओं को उठाए जाने से पहले डेटाबिंड() विधि को बुलाया जाता है तो उपरोक्त अपवाद उत्पन्न होता है क्योंकि नियंत्रण नामकरण बदल गया है।

समाधान इसे बदलने के लिए है (! IsPostback) DataBind() और फिर ईवेंट हैंडलर के अंत में DataBind() विधि को कॉल करें। परिवर्तनों को प्रभावित करने के लिए आपको हैंडलर के अंत में इसे अधिकतर समय तक कॉल करने की आवश्यकता होगी।

यदि यह आपकी समस्या नहीं है, और आप जावास्क्रिप्ट का उपयोग कर नियंत्रण क्लाइंट पक्ष को संशोधित कर रहे हैं, तो this article देखें।

3

ऐसा इसलिए होता है क्योंकि Repeater डेटासोर्स (बाइंडिंग) प्राप्त कर रहा है क्योंकि आप item कमांड ऑपरेशन करते हैं। बस if(not ispostback)page_load विधि में जोड़ें।

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