rz_rahgozar
Member
کد زیر را برای تنظیم صفحه بندی بکار بردم اما مشکی به وجود آمده
[LTR][LTR]
[/LTR][/LTR]
مشکل این است که در قسمتی که تعداد کل داده ها را تقسیم بر تعداد رکورد در صفحه می کنیم تا تعداد شمارنده گرید ویو تشکیل شود درست کار نمی کند اما وقتی فقط تعداد کل داده ها را (COunt) به شمارنده گرید ویو می دهیم درست کار می کند . علت چیست ؟
[LTR][LTR]
کد:
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<Script Runat="Server">
Dim conNorthwind As SqlConnection
Dim strSelect As String
Dim intStartIndex As Integer
Dim intEndIndex As Integer
Sub Page_Load
Dim cmdSelect As SqlCommand
conNorthwind = New SqlConnection("Server=LocalHost;UID=sa;PWD=;Database=IHRC;")
If Not IsPostBack Then
' Get Total Pages
strSelect = "Select Count(*) From News"
cmdSelect = New SqlCommand( strSelect, conNorthwind )
conNorthwind.Open()
dgrdProducts.VirtualItemCount = cmdSelect.ExecuteScalar()
Trace.IsEnabled = True
Trace.Warn(Math.Round(cmdSelect.ExecuteScalar() / dgrdProducts.PageSize))
conNorthwind.Close()
BindDataGrid
End If
End Sub
Sub BindDataGrid
Dim dadProducts As SqlDataAdapter
Dim dstProducts As DataSet
intEndIndex = intStartIndex + dgrdProducts.PageSize
strSelect = "Select * From News Where NewsID > @startIndex " _
& "And NewsID <= @endIndex"
dadProducts = New SqlDataAdapter( strSelect, conNorthwind )
dadProducts.SelectCommand.Parameters.Add( "@startIndex", intStartIndex )
dadProducts.SelectCommand.Parameters.Add( "@endIndex", intEndIndex )
dstProducts = New DataSet
dadProducts.Fill( dstProducts )
dgrdProducts.DataSource = dstProducts
dgrdProducts.DataBind()
End Sub
Sub dgrdProducts_PageIndexChanged( s As Object, e As DataGridPageChangedEventArgs )
intStartIndex = ( e.NewPageIndex * dgrdProducts.PageSize )
dgrdProducts.CurrentPageIndex = e.NewPageIndex
BindDataGrid
End Sub
</Script>
<html>
<head><title>DataGridCustomPaging.aspx</title></head>
<body>
<form id="Form1" Runat="Server">
<asp:DataGrid
ID="dgrdProducts"
AllowPaging="True"
AllowCustomPaging="True"
PageSize="17"
OnPageIndexChanged="dgrdProducts_PageIndexChanged"
PagerStyle-Mode="NumericPages"
CellPadding="3"
Runat="Server"
AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="NewsID"></asp:BoundColumn>
<asp:BoundColumn DataField="NewsMode"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
مشکل این است که در قسمتی که تعداد کل داده ها را تقسیم بر تعداد رکورد در صفحه می کنیم تا تعداد شمارنده گرید ویو تشکیل شود درست کار نمی کند اما وقتی فقط تعداد کل داده ها را (COunt) به شمارنده گرید ویو می دهیم درست کار می کند . علت چیست ؟