Привязка Gridview теряется при изменении индекса страницы VB.NET

Я использую Ajax для вызова BindGridview() Класс на код позади, чтобы связать значения из базы данных. Однако, это работает только в первый раз, когда я пытаюсь изменить индекс страницы в сетке, он становится пустым. Ниже мой код.

я использовал <%=PostBackString %> вызвать функцию по коду позади.

 $.ajax({
                         type: "POST",
                         contentType: "application/json; charset=utf-8",
                         url: "RepairStatusChart.aspx/BindRecord",
                         data: data,
                         dataType: "json",
                         success: function (result) {
                             <%=PostBackString %>
                             alert("Success");
                         },
                         error: function (xhr, textStatus, errorThrown) {
                          alert("Sorry, an unexpected error has occured.");
                         }
                     });

<%=PostBackString %> перейдет к моей странице загрузки, чтобы позвонить BindGridview() учебный класс

PostBackString = Page.ClientScript.GetPostBackEventReference(Me, "MyEventArgumentName")
        If IsPostBack Then
            If Request("__EVENTARGUMENT") = "MyEventArgumentName" Then
                BindGridview()
            End If
        End If

Это мое BindGridview() класс, который установит привязку данных к сетке

Protected Sub BindGridview()
        Dim partnum, ddlMonthFrom, ddlYearFrom, ddlMonthTo, ddlYearTo, repaircenter, finalstatus As String

        partnum = HttpContext.Current.Session("partnum").ToString()

        ddlMonthFrom = HttpContext.Current.Session("ddlMonthFrom").ToString()

        ddlYearFrom = HttpContext.Current.Session("ddlYearFrom").ToString()

        ddlMonthTo = HttpContext.Current.Session("ddlMonthTo").ToString()

        ddlYearTo = HttpContext.Current.Session("ddlYearTo").ToString()

        repaircenter = HttpContext.Current.Session("rc")

        finalstatus = HttpContext.Current.Session("status")

        Dim strConnString As String = ConfigurationManager.ConnectionStrings("prcConnectionString").ConnectionString
        Dim con As New MySqlConnection(strConnString)
        Dim select1 As String = "select CountFrequency, SRNo, RefurbishedSN, ShipmentDate, PartsNo, EmployeeID, Alias, Company, PartSN, StartRepairDate, DateReceived,  DateCreated, LastUpdated, EstimatedRepairCompletionDate, Status,datediff(curdate(),STR_TO_DATE(replace(DateReceived,',','-'),'%d-%M-%Y')) as Aging from testvsrparts WHERE (STR_TO_DATE(shipmentdate,'%d, %M, %Y') Between STR_TO_DATE('01, " + ddlMonthFrom.ToString + ", " + ddlYearFrom.ToString + "','%d, %M, %Y') AND STR_TO_DATE('31, " + ddlMonthTo.ToString + ", " + ddlYearTo.ToString + "','%d, %M, %Y')) " + partnum + " AND  Alias ='" + repaircenter.ToString + "' AND  Status ='" + finalstatus.ToString + "'  ;"

        Dim dt As New DataTable()


        dt = conn.query(select1)
        GridView1.DataSource = dt
        GridView1.DataBind()

    End Sub

До этой части он работает очень хорошо, но моя проблема в том, что когда я пытаюсь изменить индекс страницы, он становится пустым. Я уже установил GridView1_PageIndexChanged а также GridView1_PageIndexChanging как показано ниже

    Protected Sub GridView1_PageIndexChanged(sender As Object, e As EventArgs) Handles GridView1.PageIndexChanged
                BindGridview()
    End Sub

    Protected Sub GridView1_PageIndexChanging(sender As Object, e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
                GridView1.PageIndex = e.NewPageIndex
                BindGridview()
    End Sub

Это скриншот до и после изменения индекса страницы.

До

До

После нажмите на другую страницу После

Я хотел бы знать, по какой причине это происходит. Кто-нибудь может помочь мне решить эту проблему? Я действительно не знаю, как решить эту проблему. Ценю твою помощь.

0 ответов

Другие вопросы по тегам