000
05.02.2007, 08:02 Uhr
Eroli
|
Hallo zusammen,
bastele ja gerade an einer Suchfunktion für meine Homepage und da hat ganz am Anfang auch alles geklappt, bis ich alles umgebaut habe und jetzt wird zwar eine Suche gestartet, das auch erfolgreich, aber es werden keine ergebnisse mehr über den Repeater angezeigt.
Ursprünglich stammt alles von diesem Tutorial, es wurde aber alles massiv umgebaut... www.codeproject.com/aspnet/custompaging.asp
Tja, nun fragt ihr euch sicher wie ihr mir helfen könnt und das frage ich mich auch. Soll ich den Code hier anhängen?? Ich denke, ich versuche mal die wichtigsten Code-Ausschnitte zu posten:
Code: |
void BindData(int pageNumber, int totalPages) { SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); SqlCommand command = new SqlCommand("GetResultsByPage", connection); command.Parameters.AddWithValue("@PageNumber", pageNumber); command.Parameters.AddWithValue("@PageSize", totalPages); command.Parameters.AddWithValue("@Condition1", "[Id]"); command.Parameters.AddWithValue("@Condition2", (string)Session["ResultIDs"]); command.CommandType = CommandType.StoredProcedure; string test = (string)Session["ResultIDs"]; connection.Open(); DataSet auctions = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = command; adapter.Fill(auctions, "Auctions"); connection.Close();
// Bind Data to the repeater ProductsRepeater.DataSource = auctions; ProductsRepeater.DataBind();
// Display the page links PagesDisplay.Text = ""; for (int i = 1; i <= totalPages; i++) { if (pageNumber != i) { int pages; if (Request.QueryString["Pages"] != null) pages = Convert.ToInt32(Request.QueryString[1]); else pages = Convert.ToInt32(Pages.Value); PagesDisplay.Text += String.Format("<a href=Search.aspx?PageNumber={0}&Pages={1}&Total={2}&SearchItem={3}>[{4}] </a>",(i),pages,totalRecords,(NicknameTextBox.Text),(i)); } else PagesDisplay.Text += "[" + i + "] "; } FirstPage.Text = String.Format("<a href=Search.aspx?PageNumber={0}&Pages={1}&Total={2}&SearchItem={3}>First </a>", PageNumber.Value, Pages.Value, totalRecords, SearchItem); NextPage.Text = String.Format("<a href=Search.aspx?PageNumber={0}&Pages={1}&Total={2}&SearchItem={3}>Next </a>", Convert.ToInt32(PageNumber.Value) == Convert.ToInt32(Pages.Value) ? Convert.ToInt32(Pages.Value) : Convert.ToInt32(PageNumber.Value) + 1, Pages.Value, totalRecords, SearchItem); PrevPage.Text = String.Format("<a href=Search.aspx?PageNumber={0}&Pages={1}&Total={2}&SearchItem={3}>Prev </a>", Convert.ToInt32(PageNumber.Value) >= 2 ? Convert.ToInt32(PageNumber.Value) - 1 : 1, Pages.Value, totalRecords, SearchItem); LastPage.Text = String.Format("<a href=Search.aspx?PageNumber={0}&Pages={1}&Total={2}&SearchItem={3}>Last </a>", Pages.Value, Pages.Value, totalRecords, SearchItem);
// enable/disable the links to navigate through the pages FirstPage.Enabled = (pageNumber != 1); PrevPage.Enabled = (pageNumber != 1); NextPage.Enabled = (pageNumber != totalPages); LastPage.Enabled = (pageNumber != totalPages);
Info.Text = totalRecords + " records are found and divided into " + Pages.Value + " pages<br><br>"; }
int GetResults(string Condition) { SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); SqlCommand command = new SqlCommand(); command.CommandText = "SELECT Count(*) FROM [AuctionsTable] WHERE " + Condition; command.Connection = connection; connection.Open(); int count = (int)command.ExecuteScalar(); connection.Close(); int[] resultIDs = new int[count]; command.CommandText = "SELECT [Id] FROM [AuctionsTable] WHERE " + Condition; connection.Open(); SqlDataReader DataReader = command.ExecuteReader(); for (int i = 0; i != resultIDs.Length; i++) { DataReader.Read(); resultIDs[i] = (int)DataReader.GetSqlInt32(0); if (i == 0) Session["ResultIDs"] = string.Format("{0} OR ", resultIDs[0]); else Session["ResultIDs"] += i == resultIDs.Length - 1 ? String.Format("[Id]={0}", resultIDs[i].ToString()) : String.Format("[Id]={0} OR ", resultIDs[i]); } connection.Close(); connection.Dispose(); return count; }
|
Und dann hier der Designer-code oder wie das heißt:
Code: |
<asp:repeater ID="ProductsRepeater" runat="server"> <itemtemplate> <tr> <td><%# DataBinder.Eval(Container.DataItem, "Id") %></td> <td><asp:HyperLink runat=server ID="TestHyperLink" NavigateUrl='<%# "~/Auction.aspx?ID="+DataBinder.Eval(Container.DataItem, "Id") %>'><%# DataBinder.Eval(Container.DataItem, "Id") %></asp:HyperLink></td> <td><%# DataBinder.Eval(Container.DataItem, "User") %></td> <td><%# DataBinder.Eval(Container.DataItem, "Categorie") %></td> <td><%# DataBinder.Eval(Container.DataItem, "Title") %></td> <td><%# DataBinder.Eval(Container.DataItem, "Description") %></td> </tr> </itemtemplate> </asp:repeater>
|
Hoffe ihr könnt mir irgendwie helfen, ich hab nämlich absolut keine ahnung woran es liegen könnte.... |