गतिशील छवि बटन घटना हैंडलर फायरिंग नहीं

मेरे पास पेज_लोड पर एक गतिशील तालिका बन रही है।

मैंने टेबल को एक अपडेट पैनल के अंदर रखा ताकि मैं पूर्ण पृष्ठ पोस्टबैक के बिना गतिशील रूप से पंक्तियां जोड़ सकूं। प्रत्येक पंक्ति में 4 कक्ष होते हैं जिनमें पहले 3 टेक्स्टबॉक्स होते हैं और चौथा सेल एक छवि बटन होता है जिसे पंक्ति को हटाने की आवश्यकता होती है।

हालांकि पंक्ति को हटाने के लिए छवि बटन वापस पोस्ट कर रहा है लेकिन ईवेंट हैंडलर उप को फायर नहीं कर रहा है।

मैंने पोस्टबैक पर पुनः लोड करने के लिए टेबल को एक सत्र चर में सेट किया है।

<%--Update Panel with Image Button to add row--%>

 
    
    <div style="height:100px; overflow:scroll; overflow-x:hidden;">
        
    </div>   
 

पेज.init पर यदि पीएनएल पेज पोस्टबैक में है तो यह अवधि को दोबारा शुरू करता है

    If pnlHA.Page.IsPostBack Then
        spanTBL_HA.Controls.Clear()
        spanTBL_HA.Controls.Add(CType(Session("tblHA"), Table))
    End If

टेबल सेल में छवि बटन जोड़ा जा रहा है

img = New ImageButton

Session("tblHA_Counter") = CInt(Session("tblHA_Counter")) + 1

img.AlternateText = "Delete Row"
img.Attributes.Add("style", "height: 10px; width: 10px; cursor: hand;")
img.ImageUrl = "../images/minus_red.png"
img.ID = "img_" & CInt(Session("tblHA_Counter")).ToString
AddHandler img.Click, AddressOf imgRemove_Click
img.Attributes.Add("runat", "server")

tc.Attributes.Add("style", "width:35px")
tc.Controls.Add(img)

घटना पर क्लिक करें

Protected Sub imgRemove_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
    Dim img As ImageButton = CType(sender, ImageButton)
    Dim delRow As TableRow = Nothing
    Dim rowIndex As Integer = 0

    For Each row As TableRow In CType(Session("tblHA"), Table).Rows
        If CType(row.Cells(3).Controls(0), ImageButton).UniqueID = img.UniqueID Then
            delRow = row
        End If
    Next

    If delRow IsNot Nothing Then
        CType(Session("tblHA"), Table).Rows.Remove(delRow)
    End If

    spanTBL_HA.Controls.Clear()
    spanTBL_HA.Controls.Add(CType(Session("tblHA"), Table))

End Sub
0
जोड़ा संपादित
विचारों: 1

1 उत्तर

डायनामिक नियंत्रणों को प्रत्येक समय को पृष्ठ बनाने के लिए बनाया जाता है ताकि ASP.NET को दृश्य स्थिति, पोस्टबैक डेटा और ईवेंट वायरअप को गतिशील रूप से बनाए गए नियंत्रणों को पुनर्स्थापित करने की अनुमति मिल सके। तो उन्हें पोस्टबैक पर भी पुन: बनाना याद रखें।

कृपया जांचें कि क्या आप उन्हें प्रत्येक पोस्ट पर बना रहे हैं या नहीं।

0
जोड़ा
प्रारंभिक तालिका पेज_लोड पर बनाई गई है और एक सत्र चर पर सेट है और फिर अवधि में जोड़ा गया है। पेज_इनिट पर एक पोस्टबैक के दौरान मैं सत्र में अवधि नियंत्रण को रीसेट कर देता हूं यदि यह कुछ भी नहीं है .. span_tblHA.Controls.Add (CType (सत्र ("tblHA"), तालिका)। क्या वह "पुनर्निर्मित" आवश्यकताओं को पूरा नहीं करता है?
जोड़ा लेखक Dan, स्रोत