Access paging data with SEO friendly URLs

I need some help on how to swap data from an access database. I used asp:ListView and asp:DataPager as some kind of example I found, but swap work with javascript, and I want the paging to be friendly.

How can I put some of my code?

[edit] this is the code:

 <asp:ListView ID="tblProjects" runat="server" OnPagePropertiesChanging="tblProjects_PagePropertiesChanging"> <LayoutTemplate> <ul class="ulProducts"> <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> </ul> </LayoutTemplate> <ItemTemplate> <li> <div class="divProduct"> <a rel='pics' href='GalleryEditor/pictures/<%# Eval("BigImageName") %>'> <img src='GalleryEditor/pictures/<%# Eval("SmallImagesName") %>' alt='<%# Eval("ImageDetail") %>' title='<%# Eval("ImageDetail") %>' /> </a> </div> </li> </ItemTemplate> <EmptyDataTemplate> no data </EmptyDataTemplate> 

This code is behind:

 protected void tblProjects_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e) { //set current page startindex, max rows and rebind to false imagesPager.SetPageProperties(e.StartRowIndex, e.MaximumRows, false); string page = Request.QueryString["p"]; if (!(FormValidator.IsNumber(page))) page = "8800"; buildProducts(page); } void buildTitleAndDescription(string page) { // set page title OleDbConnection conn0 = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath("GalleryEditor\\App_Data\\projects.mdb")); OleDbCommand comm0 = new OleDbCommand("select ProjectName from Project where PlaceID=" + page, conn0); OleDbDataReader reader0; conn0.Open(); reader0 = comm0.ExecuteReader(); reader0.Read(); Page.Header.Title = reader0["ProjectName"].ToString(); reader0.Close(); conn0.Close(); //if (IsPostBack) //{ // string Script = "<script type='text/javascript'>goToEnd();\n</script>"; // Page.ClientScript.RegisterStartupScript(this.GetType(), "onload", Script); //} } void buildProducts(string page) { // set page content OleDbConnection conn = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath("GalleryEditor\\App_Data\\sb.mdb")); OleDbCommand comm = new OleDbCommand("select SmallImagesName, BigImageName, ImageDetail from Images where PlaceID=" + page, conn); conn.Open(); DataSet ds = new DataSet(); OleDbDataAdapter da = new OleDbDataAdapter(comm); da.Fill(ds); tblProjects.DataSource = ds; tblProjects.DataBind(); } 

I do not mind changing the code to make it better, and if I find out its form, I will be grateful. All the example I found for SQL and my data should be accessible.

+4
source share
1 answer

Here is an example asp listview, you will need to define the query sequence as follows.

  <asp:ListView ID="ListView1" runat="server" DataKeyNames="bd_book_code" DataSourceID="SqlDataSource1" EnableModelValidation="True"> <AlternatingItemTemplate> <tr style=""> <td> <asp:Label ID="bd_book_codeLabel" runat="server" Text='<%# Eval("bd_book_code") %>' /> </td> <td> <asp:Label ID="bd_isbnLabel" runat="server" Text='<%# Eval("bd_isbn") %>' /> </td> <td> <asp:Label ID="bd_titleLabel" runat="server" Text='<%# Eval("bd_title") %>' /> </td> </tr> </AlternatingItemTemplate> <EditItemTemplate> <tr style=""> <td> <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" /> <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" /> </td> <td> <asp:Label ID="bd_book_codeLabel1" runat="server" Text='<%# Eval("bd_book_code") %>' /> </td> <td> <asp:TextBox ID="bd_isbnTextBox" runat="server" Text='<%# Bind("bd_isbn") %>' /> </td> <td> <asp:TextBox ID="bd_titleTextBox" runat="server" Text='<%# Bind("bd_title") %>' /> </td> </tr> </EditItemTemplate> <EmptyDataTemplate> <table runat="server" style=""> <tr> <td> No data was returned.</td> </tr> </table> </EmptyDataTemplate> <InsertItemTemplate> <tr style=""> <td> <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" /> <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" /> </td> <td> <asp:TextBox ID="bd_book_codeTextBox" runat="server" Text='<%# Bind("bd_book_code") %>' /> </td> <td> <asp:TextBox ID="bd_isbnTextBox" runat="server" Text='<%# Bind("bd_isbn") %>' /> </td> <td> <asp:TextBox ID="bd_titleTextBox" runat="server" Text='<%# Bind("bd_title") %>' /> </td> </tr> </InsertItemTemplate> <ItemTemplate> <tr style=""> <td> <asp:Label ID="bd_book_codeLabel" runat="server" Text='<%# Eval("bd_book_code") %>' /> </td> <td> <asp:Label ID="bd_isbnLabel" runat="server" Text='<%# Eval("bd_isbn") %>' /> </td> <td> <asp:Label ID="bd_titleLabel" runat="server" Text='<%# Eval("bd_title") %>' /> </td> </tr> </ItemTemplate> <LayoutTemplate> <table runat="server"> <tr runat="server"> <td runat="server"> <table ID="itemPlaceholderContainer" runat="server" border="0" style=""> <tr runat="server" style=""> <th runat="server"> bd_book_code</th> <th runat="server"> bd_isbn</th> <th runat="server"> bd_title</th> </tr> <tr ID="itemPlaceholder" runat="server"> </tr> </table> </td> </tr> <tr runat="server"> <td runat="server" style=""> <asp:DataPager ID="DataPager1" runat="server" QueryStringField="pid"> <Fields> <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> <asp:NumericPagerField /> <asp:NextPreviousPagerField ButtonType="Link" ShowLastPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> </Fields> </asp:DataPager> </td> </tr> </table> </LayoutTemplate> <SelectedItemTemplate> <tr style=""> <td> <asp:Label ID="bd_book_codeLabel" runat="server" Text='<%# Eval("bd_book_code") %>' /> </td> <td> <asp:Label ID="bd_isbnLabel" runat="server" Text='<%# Eval("bd_isbn") %>' /> </td> <td> <asp:Label ID="bd_titleLabel" runat="server" Text='<%# Eval("bd_title") %>' /> </td> </tr> </SelectedItemTemplate> </asp:ListView> 

QueryStringField = "pid" will do the magic.

0
source

All Articles