Avatar billede Slettet bruger
14. december 2007 - 17:10 Der er 2 kommentarer

Nested Repeater med Mysql

Hej..

Jeg har et lille problem. Jeg vil gerne have en nested repeater. Jeg har fundet et script på nettet. Men den har valgt at bruge MS-SQL til det og jeg bruger MySQL. Jeg har prøvet i noget tid at oversætte det men kunne ikke så håbede nogle her kunne hjælpe:

        <asp:Repeater ID="CategoryList" runat="server" EnableViewState="False">
            <ItemTemplate>
                <h4><%# Eval("Titel") %></h4>
                <p><%# Eval("Textarea") %></p>
                <asp:Repeater runat="server" ID="ProductsByCategoryList" EnableViewState="False"
                        DataSource='<%# GetProductsInCategory((int) Eval("BrugerID")) %>'>
                    <HeaderTemplate>
                        <ul>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <li><strong><%# Eval("Brugernavn") %></strong></li>
                    </ItemTemplate>
                    <FooterTemplate>
                        </ul>
                    </FooterTemplate>
                </asp:Repeater>   
            </ItemTemplate>
        </asp:Repeater>


og min C# kode.. (Det er det nederste jeg ikke kan oversætte)

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySql.Data.MySqlClient;

public partial class NestedRepeater : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        string strConnectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;

        MySqlConnection conn = new MySqlConnection(strConnectionString);
        MySqlCommand command = conn.CreateCommand();
        command.CommandText = "select * from lovemusicDebat WHERE id=?id;";
        command.Parameters.Add("?id", MySqlDbType.Int16, 16).Value = User.Identity.Name;
        conn.Open();
        CategoryList.DataSource = command.ExecuteReader();
        CategoryList.DataBind();
        conn.Close();
    }
    private Northwind.ProductsDataTable allProducts = null;

    protected Northwind.ProductsDataTable GetProductsInCategory(int categoryID)
    {
        if (allProducts == null)
        {
            ProductsBLL productAPI = new ProductsBLL();
            allProducts = productAPI.GetProducts();
        }
        allProducts.DefaultView.RowFilter = "id = " + categoryID;
        return allProducts;
    }
}
Avatar billede mikalj Nybegynder
18. december 2007 - 10:27 #1
Jeg er ikke helt sikker på jeg forstår dit spørgsmål rigtigt. Men du har fundet dette kode et andet sted og prøver nu at tilpasse det til dit formål?

Der skulle gerne være en klasse der hedder "ProductsBLL" som bliver brugt i den nederste del til at få en collection til den inderste repeater.

Ideen ser ud til at være god nok. At bruge en metode til at hente indholdet af den inderste repeater. Selvom jeg er ret sikker på at du ikke kan sætte Datasource på en repeater fra apsx filen som det er gjort her.
Hvis jeg var dig, ville jeg tage et kig på ObjectDataSource.
Avatar billede Slettet bruger
18. december 2007 - 20:47 #2
Jeg har haft kigget, men jeg er helt blank på hvordan jeg kan gøre det med MySQL..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester