Purtroppo il capo mi ha riempito di cose da fare per cui non posso farti un'esempio personalizzato
comunque questa vecchia pagina l'ho appena ritestata e funziona pefettamente, ti basta taroccare il nome del database e dei campi per avere un'esempio funzionante sul tuo computer:
codice:
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
Private Sub PopulatemyGridView()
Dim connectionString As String = AccessConnectionString()
Dim accessConnection As OleDbConnection = New OleDbConnection(connectionString)
Dim sqlQuery As String = "SELECT [ID], [Codice], [ITAdescription], [ENGdescription] FROM Codes ORDER BY [ITAdescription] ASC;"
Dim accessCommand As New OleDbCommand(sqlQuery, accessConnection)
Dim myDataAdapter As New OleDbDataAdapter(accessCommand)
Dim myDataTable As New DataTable("Codes")
myDataAdapter.Fill(myDataTable)
Dim dataTableRowCount As Integer = myDataTable.Rows.Count
If dataTableRowCount > 0 Then
myGridView.DataSource = myDataTable
myGridView.DataBind()
myGridView.Columns(0).ItemStyle.Width = New Unit(50, UnitType.Pixel)
myGridView.Columns(1).ItemStyle.Width = New Unit(100, UnitType.Pixel)
myGridView.Columns(2).ItemStyle.Width = New Unit(100, UnitType.Pixel)
End If
End Sub
Private Function AccessConnectionString() As String
Dim accessDatabasePath As String = Server.MapPath("~/App_Data/myDatabase.mdb")
Return String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", accessDatabasePath)
End Function
Private Property GridViewSortDirection() As String
Get
Return IIf(ViewState("SortDirection") = Nothing, "ASC", ViewState("SortDirection"))
End Get
Set(ByVal value As String)
ViewState("SortDirection") = value
End Set
End Property
Private Property GridViewSortExpression() As String
Get
Return IIf(ViewState("SortExpression") = Nothing, String.Empty, ViewState("SortExpression"))
End Get
Set(ByVal value As String)
ViewState("SortExpression") = value
End Set
End Property
Private Function GetSortDirection() As String
Select Case GridViewSortDirection
Case "ASC"
GridViewSortDirection = "DESC"
Case "DESC"
GridViewSortDirection = "ASC"
End Select
Return GridViewSortDirection
End Function
Protected Sub myGridView_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
myGridView.DataSource = SortDataTable(myGridView.DataSource, True)
myGridView.PageIndex = e.NewPageIndex
myGridView.DataBind()
lblRecordsCount.Text = "Stai vedendo la pagina " & (myGridView.PageIndex + 1) & " di " & myGridView.PageCount
End Sub
Protected Function SortDataTable(ByVal dataTable As DataTable, ByVal isPageIndexChanging As Boolean) As DataView
If Not dataTable Is Nothing Then
Dim dataView As New DataView(dataTable)
If GridViewSortExpression <> String.Empty Then
If isPageIndexChanging Then
dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection)
Else
dataView.Sort = String.Format("{0} {1}", GridViewSortExpression, GetSortDirection())
End If
End If
Return dataView
Else
Return New DataView()
End If
End Function
Protected Sub myGridView_Sorting(ByVal sender As Object, ByVal e As GridViewSortEventArgs)
GridViewSortExpression = e.SortExpression
Dim pageIndex As Integer = myGridView.PageIndex
myGridView.DataSource = SortDataTable(myGridView.DataSource, False)
myGridView.DataBind()
myGridView.PageIndex = pageIndex
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
PopulatemyGridView()
End Sub
Protected Function brString(ByVal strText As String) As String
' Tronco una stringa se è più lunga di N caratteri
Dim i As Integer
Dim parti() As String
Dim returnString As String = ""
parti = Split(strText, ",")
For i = 0 To UBound(parti)
' Tarocca il 10 per decidere la lunghezza a cui troncare
If Len(parti(i)) > 10 Then
returnString += parti(i).Substring(0, 10) + " ..." + "
" ' Tronco
Else
returnString += parti(i) + "
" ' Non tronco
End If
Next
Return returnString
End Function 'brString
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head" runat="server">
<title></title>
</head>
<body>
<form id="form" runat="server">
<div align="center">
<asp:GridView ID="myGridView"
AllowPaging="True"
AllowSorting="True"
AutoGenerateColumns="False"
EmptyDataText="No records found"
PagerSettings-Mode="NumericFirstLast" PageSize="25"
DataKeyNames="ID"
OnPageIndexChanging="myGridView_PageIndexChanging"
OnSorting="myGridView_Sorting"
runat="server">
<RowStyle CssClass="GridItem" />
<HeaderStyle CssClass="GridHeader" />
<AlternatingRowStyle CssClass="GridAltItem" />
<PagerStyle CssClass="GridPager" HorizontalAlign="Center" />
<Columns>
<asp:TemplateField HeaderText="ID" SortExpression="ID">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Codice" SortExpression="Codice">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Codice") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ITAdescription" SortExpression="ITAdescription">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# brString(DataBinder.Eval(Container.DataItem,"ITAdescription").ToString()) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerSettings Mode="NumericFirstLast" />
</asp:GridView>
<asp:Label ID="lblRecordsCount" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
Ci sono delle funzioni che non ti servono a nulla (ordinamento, recordcount, etc) ...ignorale.
A te interessa la sintassi che c'è in:
- PopulatemyGridView (per la larghezza delle colonne)
- brString (per troncare la stringa)
Poi, nell gridView, vedi come richiamare la funzione brString
Fammi sapere se ti ci ritrovi ma prima fai delle prove da solo perchè oggi sono incasinatissimo.