2015-11-04 1 views
0

Я пытаюсь отобразить данные, запрошенные Oracle, в виде сетки и добавить пейджинг с событием PageIndexChanging. Однако, после нескольких разных попыток с небольшими изменениями, нажатие другой страницы отображает экран без сетки или просто обновляет сайт с помощью gridview, все еще на странице 1. Никогда раньше не работали с веб-приложениями/сайтами, какие-либо идеи?VB.Net Таблица GridView с пейджингом, на событии PageIndexChanging ничего не отображается или первая страница

Код:

Imports System.Data 

Partial Class _Default 
Inherits System.Web.UI.Page 

Protected Sub Search_Click(sender As Object, e As EventArgs) Handles Search.Click 
    Dim con As OleDb.OleDbConnection 
    Dim command As OleDb.OleDbCommand 
    Dim commandstr As String 
    Dim wherestr As String 
    Dim dt As DataTable = New DataTable 
    Dim oda As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter 

    'Remove any non-aplhanumeric characters from the input string 
    MeterID_tb.Text = Regex.Replace(MeterID_tb.Text, "[^A-Za-z0-9]+", "") 
    'Opco_tb.Text = Regex.Replace(Opco_tb.Text, "[^A-Za-z0-9]+", "") 
    DateFrom_tb.Text = Regex.Replace(DateFrom_tb.Text, "[^A-Za-z0-9]+", "") 
    DateTo_tb.Text = Regex.Replace(DateTo_tb.Text, "[^A-Za-z0-9]+", "") 

    'Don't allow the user to search without a filter. The results returned will be too large 
    'Opco_tb.Text = "" & 
    If (MeterID_tb.Text = "") And (Division_db.SelectedValue = "Any") And (DateFrom_tb.Text = "") And (DateTo_tb.Text = "") Then 

     Dim strScript As String = "<script language=JavaScript>" 
     strScript += "alert(""" & "You must enter at least one search parameter." & """);" 
     strScript += "</script>" 

     If (Not Page.IsStartupScriptRegistered("clientScript")) Then 
      Page.RegisterStartupScript("clientScript", strScript) 
     End If 

     Exit Sub 
    End If 

    con = New OleDb.OleDbConnection(*Hidden*) 
    commandstr = "SELECT METERID as ""Meter ID"", REPID as ""Rep ID"", DIVISION as ""Division"", CITY as ""City"", ADDRESS as ""Address"", RATECODE as ""Ratecode"", METERFORM as ""Meter Form"", METERSTATUS as ""Meter Status"", METERPOINTSTATUS as ""Meter Point Status"", BILLINGCYCLE as ""Billing Cycle"", FILENAME as ""Filename"", FILEDATETIME as ""File Date/Time"" from BAD_METER_LIST" 
    wherestr = " WHERE" 

    If MeterID_tb.Text <> "" Then 
     If wherestr = " WHERE" Then 
      wherestr = wherestr + " METERID = '" + MeterID_tb.Text + "'" 
     Else 
      wherestr = wherestr + " AND METERID = '" + MeterID_tb.Text + "'" 
     End If 
    End If 

    If Division_db.SelectedValue <> "Any" Then 
     If wherestr = " WHERE" Then 
      wherestr = wherestr + " DIVISION = " + Division_db.SelectedValue 
     Else 
      wherestr = wherestr + " AND DIVISION = " + Division_db.SelectedValue 
     End If 
    End If 

    If DateFrom_tb.Text <> "" Then 

     If wherestr = " WHERE" Then 
      wherestr = wherestr + " FILEDATETIME >= to_date('" & DateFrom_tb.Text & "', 'mmddyyyy')" 
     Else 
      wherestr = wherestr + " AND FILEDATETIME >= to_date('" & DateFrom_tb.Text & "', 'mmddyyyy')" 
     End If 
    End If 

    If DateTo_tb.Text <> "" Then 

     If wherestr = " WHERE" Then 
      wherestr = wherestr + " FILEDATETIME <= to_date('" & DateTo_tb.Text & "', 'mmddyyyy')" 
     Else 
      wherestr = wherestr + " AND FILEDATETIME <= to_date('" & DateTo_tb.Text & "', 'mmddyyyy')" 
     End If 
    End If 

    command = New OleDb.OleDbCommand(commandstr + wherestr) 
    command.Connection = con 
    con.Open() 
    oda.SelectCommand = command 
    oda.Fill(dt) 

    Me.Grid_Bad_Meters.DataSource = dt 
    Me.Grid_Bad_Meters.DataBind() 

End Sub 

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 

End Sub 

Protected Sub Grid_Bad_Meters_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) Handles Grid_Bad_Meters.PageIndexChanging 
    'Grid_Bad_Meters.Visible = True 
    Grid_Bad_Meters.PageIndex = e.NewPageIndex 
    Grid_Bad_Meters.DataBind() 


End Sub 
End Class 
+0

Можете ли вы показать свои метки aspx для GridView – CurseStacker

ответ

0

Вы должны пересвязать GridView при изменении PageIndex.

Imports System.Data 

Partial Class _Default 
    Inherits System.Web.UI.Page 

#Region "Subs" 

    Private Sub CleanInput() 
     'Remove any non-aplhanumeric characters from the input string 
     MeterID_tb.Text = Regex.Replace(MeterID_tb.Text, "[^A-Za-z0-9]+", "") 
     'Opco_tb.Text = Regex.Replace(Opco_tb.Text, "[^A-Za-z0-9]+", "") 
     DateFrom_tb.Text = Regex.Replace(DateFrom_tb.Text, "[^A-Za-z0-9]+", "") 
     DateTo_tb.Text = Regex.Replace(DateTo_tb.Text, "[^A-Za-z0-9]+", "") 
    End Sub 

    Private Sub RequireFilter 
     'Don't allow the user to search without a filter. The results returned will be too large 
     'Opco_tb.Text = "" & 
     If ((MeterID_tb.Text = "") 
      AndAlso (Division_db.SelectedValue = "Any") 
      AndAlso (DateFrom_tb.Text = "") 
      AndAlso (DateTo_tb.Text = "")) Then 
      Dim strScript As String = "<script language=JavaScript>" 
      strScript += "alert(""" & "You must enter at least one search parameter." & """);" 
      strScript += "</script>" 

      If (Not Page.IsStartupScriptRegistered("clientScript")) Then 
       Page.RegisterStartupScript("clientScript", strScript) 
      End If 

      Exit Sub 
     End If 
    End Sub 

    Private Sub FillGridView 
     Dim con As OleDb.OleDbConnection 
     Dim command As OleDb.OleDbCommand 
     Dim commandstr As String 
     Dim wherestr As String 
     Dim dt As DataTable = New DataTable 
     Dim oda As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter 


     con = New OleDb.OleDbConnection(*Hidden*) 
     commandstr = "SELECT METERID as ""Meter ID"", REPID as ""Rep ID"", DIVISION as ""Division"", CITY as ""City"", ADDRESS as ""Address"", RATECODE as ""Ratecode"", METERFORM as ""Meter Form"", METERSTATUS as ""Meter Status"", METERPOINTSTATUS as ""Meter Point Status"", BILLINGCYCLE as ""Billing Cycle"", FILENAME as ""Filename"", FILEDATETIME as ""File Date/Time"" from BAD_METER_LIST" 
     wherestr = " WHERE" 

     If MeterID_tb.Text <> "" Then 
      If wherestr = " WHERE" Then 
       wherestr = wherestr + " METERID = '" + MeterID_tb.Text + "'" 
      Else 
       wherestr = wherestr + " AND METERID = '" + MeterID_tb.Text + "'" 
      End If 
     End If 

     If Division_db.SelectedValue <> "Any" Then 
      If wherestr = " WHERE" Then 
       wherestr = wherestr + " DIVISION = " + Division_db.SelectedValue 
      Else 
       wherestr = wherestr + " AND DIVISION = " + Division_db.SelectedValue 
      End If 
     End If 

     If DateFrom_tb.Text <> "" Then 

      If wherestr = " WHERE" Then 
       wherestr = wherestr + " FILEDATETIME >= to_date('" & DateFrom_tb.Text & "', 'mmddyyyy')" 
      Else 
       wherestr = wherestr + " AND FILEDATETIME >= to_date('" & DateFrom_tb.Text & "', 'mmddyyyy')" 
      End If 
     End If 

     If DateTo_tb.Text <> "" Then 

      If wherestr = " WHERE" Then 
       wherestr = wherestr + " FILEDATETIME <= to_date('" & DateTo_tb.Text & "', 'mmddyyyy')" 
      Else 
       wherestr = wherestr + " AND FILEDATETIME <= to_date('" & DateTo_tb.Text & "', 'mmddyyyy')" 
      End If 
     End If 

     command = New OleDb.OleDbCommand(commandstr + wherestr) 
     command.Connection = con 
     con.Open() 
     oda.SelectCommand = command 
     oda.Fill(dt) 

     Me.Grid_Bad_Meters.DataSource = dt 
     Me.Grid_Bad_Meters.DataBind() 
    End Sub 

#End Region 

    Protected Sub Search_Click(sender As Object, e As EventArgs) Handles Search.Click 
     CleanInput() 
     RequireFilter() 
     FillGridView() 
    End Sub 

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 

    End Sub 

    Protected Sub Grid_Bad_Meters_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) Handles Grid_Bad_Meters.PageIndexChanging 
     'Grid_Bad_Meters.Visible = True 
     Grid_Bad_Meters.PageIndex = e.NewPageIndex 
     Grid_Bad_Meters.DataBind() 
     FillGridView() 
    End Sub 
End Class 
+0

Хороший звонок, это исправлено. Это было мое подозрение, что мне нужна была другая команда из-за того, как я создал данные вида сетки (в отличие от ручной установки столбцов и значений и т. Д.). Я также ценю уборку - она ​​выглядит намного лучше. * Thumbs up * –

+0

Знаете ли вы, есть ли способ, чтобы нижний колонтитул вкладки страницы всегда был видимым/фиксированным в нижней части окна сетки? На данный момент вам все равно придется прокручивать вниз. –

+0

Я сомневаюсь, что раньше я делал что-то подобное. Вы пытались ограничить «PageSize», чтобы ваша «GridView» соответствовала странице? – CurseStacker

Смежные вопросы