I have a grid view that is dynamically created.In which every cell in the girdview has a 2 textbox (cTxtboxQty,ctxtWorkOrder) and 2 label.

When user click on the cell, a pop up come out and user are able to change the text inside the cell and click save.After that the pop up close and changed data immediately reflected on the screen.

My problem is:

After my data are changed and updated to database on the pop up page and having it post back to the parent page , my dynamically created textbox in gridview retain old value even new value has been assigned to it.


This sound very weird but i have no idea how to solve this.

My client side code is as below :

Code:
<asp:GridView ID="gvDynamic" runat="server"  >
                </asp:GridView>
Code:
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  
      
           Dim strCNo As String  
           Dim strPlant As String  
           Dim strCTBSet As String  
           Dim iRev As Integer  
      
           Try  
      
                  strCNo = Session("s_cno").ToString()  
                  strPlant = Session("s_plant").ToString()  
     
                  strCTBSet = ddlCTBSet.SelectedItem.Value  
     
                  iRev = getHighestRev(strCNo, strPlant, strCTBSet)  
     
                  GenerateControl(strCNo, strPlant, strCTBSet, iRev)  
     
     
     
          Catch ex As Exception  
              Throw ex  
          End Try  
      End Sub
Code:
 Private Sub GenerateControl(ByVal vstrCNo As String, ByVal vstrPlant As String, ByVal vstrCTBSet As String, ByVal viRev As Integer)
 

        Try

            mdsResult.Clear()
            mdsDistinctDate.Clear()
            mdsDistinctShift.Clear()
            mdsDistinctLine.Clear()
            mdsLineShiftInfo.Clear()
            mdsGridViewTemplate.Clear()


            gvDynamic.Controls.Clear()

            mdsResult = getResult(vstrCNo, vstrPlant, viRev, vstrCTBSet)

            mdsDistinctDate = getDistinctDate(vstrCNo, vstrPlant, viRev, vstrCTBSet)
            mdsDistinctShift = getShiftByCNoPlant(vstrCNo, vstrPlant)
            mdsDistinctLine = getLineByCNoPlant(vstrCNo, vstrPlant)

            mdsLineShiftInfo = getLineShiftInfo(vstrCNo, vstrPlant, viRev, vstrCTBSet)


            CreateDynamicDataset()

            ArrangeDataTomdsGridViewTemplate()

            mdsGridViewTemplate.WriteXml("/mdsGridViewTemplate.xml")

            mdsResult.WriteXml("/mdsResult.xml")

            gvDynamic.DataSource = mdsGridViewTemplate
            gvDynamic.DataBind()

            GroupGridView()

            CreateDynamicControl()

        Catch ex As Exception
            Throw ex
        End Try
    End Sub
Code:
 Private Sub CreateDynamicControl()

        Dim i As Integer
        Dim iCellIndex As Integer
        Dim drFoundRecord As Data.DataRow()

        'i ned to change cell location for line shift date wt should i do??


        Try

            For i = 0 To gvDynamic.Rows.Count - 1
                For iCellIndex = 1 To gvDynamic.Rows(i).Cells.Count - 1
                    If gvDynamic.Rows(i).Cells(iCellIndex).ID Is Nothing = False Then

                        Dim cLabelItem As New Label
                        Dim cTxtboxQty As New TextBox
                        Dim cLabelWorkOrder As New Label
                        Dim cTxtWorkOrder As New TextBox

                        Dim cLiteraSpace1 As New LiteralControl
                        Dim cLiteraSpaceBR As New LiteralControl
                        Dim cLiteraSpace2 As New LiteralControl
                        Dim cHtmlTable As New HtmlTable

                        Dim radMenu As New Telerik.Web.UI.RadContextMenu
                        Dim radMenuItem As New Telerik.Web.UI.RadMenuItem
                        Dim radMenuItem2 As New Telerik.Web.UI.RadMenuItem
                        Dim radMenuItem3 As New Telerik.Web.UI.RadMenuItem
                        Dim target As New Telerik.Web.UI.ContextMenuControlTarget


                        drFoundRecord = getRecordByKey(gvDynamic.Rows(i).Cells(iCellIndex).ID)

                        If drFoundRecord.Length > 0 Then



                            If drFoundRecord(0)("PlanNumber") = 3 Then
                                Dim a As String
                                a = "sfsdf"

                            End If

                            If drFoundRecord(0)("Firm") = "Y" Then

                                cLabelItem.CssClass = "gridFirm"
                                cTxtboxQty.CssClass = "gridFirm"
                                cLabelWorkOrder.CssClass = "gridFirm"
                                cTxtWorkOrder.CssClass = "gridFirm"


                            ElseIf drFoundRecord(0)("Changed") = "Y" Then

                                cLabelItem.CssClass = "gridChange"
                                cTxtboxQty.CssClass = "gridChange"
                                cLabelWorkOrder.CssClass = "gridChange"
                                cTxtWorkOrder.CssClass = "gridChange"

                            ElseIf drFoundRecord(0)("Change") = "N" And drFoundRecord(0)("Firm") = "N" Then

                                cLabelItem.CssClass = "gridPlan"
                                cTxtboxQty.CssClass = "gridPlan"
                                cLabelWorkOrder.CssClass = "gridPlan"
                                cTxtWorkOrder.CssClass = "gridPlan"

                            End If


                            cHtmlTable = CreateDynamicHTMLTable()

                            ' 1 label, 1 txtbox,br,label,txtbox, 1 hover menu



                            cLabelItem.ID = "lblItem" & gvDynamic.Rows(i).Cells(iCellIndex).ID
                            cTxtboxQty.ID = "txtQty" & gvDynamic.Rows(i).Cells(iCellIndex).ID
                            cLabelWorkOrder.ID = "lblWorkOrder" & gvDynamic.Rows(i).Cells(iCellIndex).ID
                            cTxtWorkOrder.ID = "txtWorkOrder" & gvDynamic.Rows(i).Cells(iCellIndex).ID

                            cLabelItem.Text = drFoundRecord(0)("Planned_Item")
                            cTxtboxQty.Text = drFoundRecord(0)("Planned_Quantity")
                            cLabelWorkOrder.Text = "W/O"
                            cTxtWorkOrder.Text = drFoundRecord(0)("WorkOrderNo")

                            cTxtboxQty.ToolTip = "Quantity"
                            cTxtWorkOrder.ToolTip = "Work Order Number"

                            cTxtboxQty.Width = 50
                            cTxtWorkOrder.Width = 50


                            radMenu.ID = "radMenu" & gvDynamic.Rows(i).Cells(iCellIndex).ID
                            radMenuItem.Text = "Edit"
                            radMenuItem2.Text = "Delete"

                            If drFoundRecord(0)("Firm") = "Y" Then
                                radMenuItem3.Text = "UnFirm"
                            Else
                                radMenuItem3.Text = "Firm"
                            End If

                            radMenu.Items.Add(radMenuItem)
                            radMenu.Items.Add(radMenuItem2)
                            radMenu.Items.Add(radMenuItem3)

                            target.ControlID = gvDynamic.Rows(i).Cells(iCellIndex).ID 'cLabelItem.ID
                            radMenu.Targets.Add(target)


                            AddHandler radMenu.ItemClick, AddressOf cRadMenuItem1Click

                            cHtmlTable.Rows(0).Cells(0).Controls.Add(radMenu)
                            cHtmlTable.Rows(0).Cells(0).Controls.Add(cLabelItem)
                            cHtmlTable.Rows(0).Cells(1).Controls.Add(cTxtboxQty)
                            cHtmlTable.Rows(1).Cells(0).Controls.Add(cLabelWorkOrder)
                            cHtmlTable.Rows(1).Cells(1).Controls.Add(cTxtWorkOrder)
                            gvDynamic.Rows(i).Cells(iCellIndex).Controls.Add(cHtmlTable)


                        End If

                    End If
                Next
            Next
        Catch ex As Exception
            Throw ex
        End Try

    End Sub
I have tested many times and find out that it might be the page hold the old value in memory, so that even we have updated the textbox value, after postback, it still keep and show the old value?

Does anyone has idea on this?

Help Please