327 messaggi dal 06 settembre 2002
verdiamo se ne esco, vi posto il codice che mi sa che si capisce meglio, ricevo in fase di debug da vs l'errore:
PagedDataSource non definito, e poi se cerco di forzare l'esecuzione ricevo anche di : Prev_Click" non è un membro di "ASP.lst_ascx".
ok:
comincio con un componente che contiene le classi e facio passare questa funzione:
--
Public Function GetProducts(ByVal IDCat As Integer) As DataTable

Dim results As DataSet = New DataSet()
Dim myConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim MyAdapter As New SqlDataAdapter("getProdByCat", myConnection)
MyAdapter.SelectCommand.CommandType = CommandType.StoredProcedure
Dim parameterIdcat As SqlParameter = New SqlParameter("@IdCat", SqlDbType.Int, 4)
parameterIdcat.Value = IDCat
MyAdapter.SelectCommand.Parameters.Add(parameterIdcat)

myConnection.Open()
MyAdapter.Fill(results, "getProdByCat")

Return results.Tables("getProdByCat").Copy
End Function
-----
qui cerco di visualizzare in un controllo, come dicevo gli errori di cui sopra.
---
Public MustInherit Class lst

Inherits System.Web.UI.UserControl
Protected WithEvents btnNext As System.Web.UI.WebControls.LinkButton
Protected WithEvents btnPrev As System.Web.UI.WebControls.LinkButton
Protected WithEvents pageNumber As System.Web.UI.WebControls.Label
Protected WithEvents MyList As System.Web.UI.WebControls.DataList
Public pagedData As New pagedDataSource()
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dopaging()
End Sub

Sub dopaging()
Dim IDcat As Integer = CInt(Request.Params("IDcat"))
Dim ProductCatalogue As HpSite.ProdDB = New HpSite.ProdDB()
pagedData.dataSource = ProductCatalogue.GetProducts("IDCat").DefaultView
pagedData.AllowPaging = True
pagedData.PageSize = 5
Try
pagedData.CurrentPageIndex = Int32.Parse(Request.QueryString("Page")).ToString()
Catch ex As Exception
pagedData.CurrentPageIndex = 0
End Try

btnPrev.Visible = (Not pagedData.IsFirstPage)
btnNext.Visible = (Not pagedData.IsLastPage)

pageNumber.Text = (pagedData.CurrentPageIndex + 1) & " of " & pagedData.PageCount
MyList.DataSource = pagedData
MyList.DataBind()
End Sub
Private Sub MyList_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyList.SelectedIndexChanged

End Sub

Public Sub Next_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex + 1))
End Sub

Public Sub Prev_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex - 1))
End Sub
End Class
-----
qui il web form

<asp:label id="pageNumber" runat="server" />
<asp:datalist id="MyList" EnableViewState="False" RepeatColumns="2" runat="server">
segue......
<a href='ProductDetails.aspx?pID=<%# DataBinder.Eval(Container.DataItem, "PID") %>'>
'ecc.</segue e chiude>
'attaco i link per scorrere.
<asp:LinkButton id="btnPrev" Text="[Indietro]-" OnClick="Prev_Click" runat="server"></asp:LinkButton>
<asp:LinkButton id="btnNext" Text="[Avanti]" OnClick="Next_Click" runat="server"></asp:LinkButton>
chi mi da una mano?
ciao grz
Maaa, sto cercando di capire
PagedDataSource è del namespace System.Web.UI.WebControls.
E' importato? perchè vedo che nelle altre dichiarazioni scrivil il percorso completo.

Ciao

Il mio blog
Homepage
327 messaggi dal 06 settembre 2002
Allora...ho un file : prodDb.vb
con un namespace custom chiamato HpSite che contiene 2 classi:

Public Class ProductDetails
Public identificativo As String
Public descrizione As String
Public img As String
Public UnitCost As Decimal
Public LongDesc as String
'queste non centrano....solo per farti capire come è fatto......
end class

Public Class ProdDB
Public Function GetProducts(ByVal IDCat As Integer) As DataTable
...
all'interno di questa ho tra le altre la funzione publica GetProducts
che è un datatable non paginato.
io vado a paginarlo nel web control per cui dal namespace di cui sopra estraggo dal db solo i records che mi servono.
quindi vado a scrivere la paginazione nel file lst.aspx(vs naturalmente crea anche il code bh. lst.aspx.vb).
PagedDataSource è del namespace System.Web.UI.WebControls(almeno così dovrebe essere) e infatti la cosa che non riesco a capire è appunto il perchè mi dice tipo non definito se è all'interno di System.Web.UI.WebControls che importo con e per il datalist,label ecc...
quindi ricapitolando il tutto è diviso:
dataset in prodDB.vb, paginazione in lst.aspx.vb,e visulalizzazione in lst.aspx.
era questo che volevi sapere o non ho capito la domanda?
ciao grz
Intendevo se hai fatto
imports System.Web.UI.WebControls

Ciao

Il mio blog
Homepage
327 messaggi dal 06 settembre 2002
infatti non c'era....pensavo venisse importato con le seguenti, scusami devo rivedermi sta cosa.
Inherits System.Web.UI.UserControl
Protected WithEvents btnNext As System.Web.UI.WebControls.LinkButton
Protected WithEvents btnPrev As System.Web.UI.WebControls.LinkButton
Protected WithEvents pageNumber As System.Web.UI.WebControls.Label
Protected WithEvents MyList As System.Web.UI.WebControls.DataList

a questo punto ho questo:
btnPrev.Visible = (Not pagedData.IsFirstPage)
btnNext.Visible = (Not pagedData.IsLastPage)
...
pageNumber.Text = (pagedData.CurrentPageIndex + 1) & " of " & pagedData.PageCount
MyList.DataSource = pagedData
MyList.DataBind()
End Sub
Public Sub Next_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex + 1))
End Sub

Public Sub Prev_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex - 1))
End Sub
poi li richiamo con 2 linkbutton.
l'errore è:
Prev_Click" non è un membro di "ASP.lst_ascx
Riga 29: </ItemTemplate>
Riga 30: </asp:datalist>
Riga 31: <asp:LinkButton id="btnPrev" Text="[Indietro]-" OnClick="Prev_Click" runat="server"></asp:LinkButton>
Riga 32: <asp:LinkButton id="btnNext" Text="[Avanti]" OnClick="Next_Click" runat="server"></asp:LinkButton>


ciao e grazie

Modificato da lobax il 13 febbraio 2003 19.42 -
mm, tutto è contenuto nello stesso ascx giusto? L'usercontrol che erediti è il codebehind della tua ascx ovviamente?
Sto cercando di avere un guadro generale, mi sembra strano che ti dia un errore in esecuzione e non in compilazione

Ciao

Il mio blog
Homepage
327 messaggi dal 06 settembre 2002
Ricciolo ha scritto:
mm, tutto è contenuto nello stesso ascx giusto? L'usercontrol che erediti è il codebehind della tua ascx ovviamente?

Si esatto
327 messaggi dal 06 settembre 2002
allora questo e tutto:
1) classe, file prodDB funzione "getproducts":
Public Function GetProducts(ByVal IDCat As Integer) As DataTable
Dim results As DataSet = New DataSet()
Dim myConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim MyAdapter As New SqlDataAdapter("getProdByCat", myConnection)
MyAdapter.SelectCommand.CommandType = CommandType.StoredProcedure
Dim parameterIdcat As SqlParameter = New SqlParameter("@IdCat", SqlDbType.Int, 4)
parameterIdcat.Value = IDCat
MyAdapter.SelectCommand.Parameters.Add(parameterIdcat)

myConnection.Open()
MyAdapter.Fill(results, "getProdByCat")

Return results.Tables("getProdByCat").Copy
End Function
----
codebehind del file ascx chiamato "lst.ascx"

Imports System.Web.UI.WebControls
Public MustInherit Class lst

Inherits System.Web.UI.UserControl
Protected WithEvents btnNext As System.Web.UI.WebControls.LinkButton
Protected WithEvents btnPrev As System.Web.UI.WebControls.LinkButton
Protected WithEvents pageNumber As System.Web.UI.WebControls.Label
Protected WithEvents MyList As System.Web.UI.WebControls.DataList

Public pagedData As New PagedDataSource()
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dopaging()
End Sub

Sub dopaging()
Dim IDcat As Integer = CInt(Request.Params("IDcat"))
Dim ProductCatalogue As HpSite.ProdDB = New HpSite.ProdDB()
pagedData.DataSource = ProductCatalogue.GetProducts("IDCat").DefaultView
pagedData.AllowPaging = True
pagedData.PageSize = 3
Try
pagedData.CurrentPageIndex = Int32.Parse(Request.QueryString("Page")).ToString()
Catch ex As Exception
pagedData.CurrentPageIndex = 0
End Try

btnPrev.Visible = (Not pagedData.IsFirstPage)
btnNext.Visible = (Not pagedData.IsLastPage)

pageNumber.Text = (pagedData.CurrentPageIndex + 1) & " of " & pagedData.PageCount
MyList.DataSource = pagedData
MyList.DataBind()
End Sub

Public Sub Prev_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex - 1))
End Sub

Public Sub Next_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex + 1))
End Sub


End Class
---
html del medesimo file:
<asp:label id="pageNumber" runat="server" BackColor="#00C0C0" />
<asp:datalist id="MyList" EnableViewState="False" RepeatColumns="2" runat="server">
<ItemTemplate>
<table border="0" width="300">
<tr>
<td width="200" valign="middle" align="right">
<a href='ProductDetails.aspx?pID=<%# DataBinder.Eval(Container.DataItem, "PID") %>'>
<img src='../img/<%# DataBinder.Eval(Container.DataItem, "Img") %>' width="100" height="100" border="1" /></a>
</td><td width="200" valign="middle">
<a href='ProductDetails.aspx?PID=<%# DataBinder.Eval(Container.DataItem, "PID") %>'>
<span class="ProductListHead">
<%# DataBinder.Eval(Container.DataItem, "Descrizione") %>
</span>
<br />
</a><span class="ProductListItem"><b>Special Price: </b>
<%# DataBinder.Eval(Container.DataItem, "UnitCost", "{0:c}") %>
</span>
<br />
<a href='AddToCart.aspx?pID=<%# DataBinder.Eval(Container.DataItem, "PID") %>'><span class="ProductListItem">
<font color="#9D0000"><b>Add To Cart</b></font></span> </a>
</td></tr></table>
</ItemTemplate>
</asp:datalist>
<asp:LinkButton id="btnPrev" Text="<" OnClick="Prev_Click" runat="server" />
<asp:LinkButton id="btnNext" Text=">" OnClick="Next_Click" runat="server" />

ciao grz

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.