Autor Beitrag
kaystuk
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 08.05.07 12:27 
Hallo Leute

Ich plage mich nun schon seit Stunden mit einem Problem rum...Ich muss eine Datnbank abfragen und die Ergebnisse gruppiert darstellen. Mein Problem, der erste Satz der Abfrage wird richtig dargestellt, vom zweiten Satz fehlt jede Spur. Der Code scheint "proper" zu sein da die Routine durchläuft. Könnt Ihr mir helfen?


csharp code:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
using System;
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 System.IO;
using System.Data;
using System.Data.SqlClient;


public partial class Sites_DataList_intranet_jobs_recursive : System.Web.UI.Page
{
//--------------------------------------------------------------------------------\\


    //-----------------------------------------------------------------------\\
    private void Page_Load(object sender, System.EventArgs e)
    {
        SqlConnection con = new SqlConnection("server=server;uid=uid;pwd=pwd;database=db");
        SqlDataAdapter sdap =
        new SqlDataAdapter("SELECT DISTINCT a.name as CountryName, a.code FROM master_country as a INNER JOIN jobs as b ON a.code = b.country WHERE (b.status = 'A') ORDER BY a.name ASC; SELECT id, country, name as JobTitle FROM jobs WHERE (status = 'A') ORDER BY country, name", con);

        DataSet ds = new DataSet();
        
        sdap.Fill(ds);
        ds.Relations.Add(

        new DataRelation("NestThem", ds.Tables[0].Columns["code"], ds.Tables[1].Columns["country"])
         );

        myRepeater.DataSource = ds;
        myRepeater.DataBind();
    }
    //-----------------------------------------------------------------------\\

    //-----------------------------------------------------------------------\\
    private void myRepeater_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
    {
        DataRowView dv = e.Item.DataItem as DataRowView;
        if (dv != null)
        {
            Repeater nestedRepeater = e.Item.FindControl("NestedRepeater"as Repeater;
            if (nestedRepeater != null)
            {
                nestedRepeater.DataSource = dv.CreateChildView("NestThem");
                nestedRepeater.DataBind();
            }
        }
    }
    //-----------------------------------------------------------------------\\

//--------------------------------------------------------------------------------\\

}



Form :
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
<TABLE id="Table1" border="0">
        <asp:repeater id="myRepeater" runat="server">
        <ItemTemplate>
        <TR>
        <TD><b><u><%#DataBinder.Eval(Container.DataItem, "CountryName")%></u></b></TD>
        </TR>
            
            <asp:repeater id="NestedRepeater" runat="server">
            <ItemTemplate>
            <TR>
            <TD>
            <%#Eval("JobTitle")%>
            <br>
            <%#Eval("country")%>
            </TD>
            </TR>
            </ItemTemplate>
            </asp:repeater>
            
        </ItemTemplate>
        </asp:repeater>
        </TABLE>


Moderiert von user profile iconraziel: Code- durch C#-Tags ersetzt