Avatar billede Slettet bruger
29. marts 2008 - 17:45 Der er 1 kommentar

Nested Repeater, Begrænsningen kan ikke aktiveres, C#

Hej alle eksperter.

Jeg står her med et problem. Jeg er igang med at lave et artikel system, hvor en bruger kan oprette en artikel. Men jeg har et problem hvis jeg når jeg vil bruge min nested repeater. For hvis en bruger ikke har oprettet en artikel siger den fejl. (Begrænsningen kan ikke aktiveres, for der er ikke tilsvarende overordnede værdier for alle værdier.)

Min kode ser sådan her:
<%@ Page Language="C#" Debug="true"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="MySql.Data.MySqlClient" %>
<html>
<head>
<title>Master Detail information in Data Repeater </title>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
string strSql, strConn;
DataSet ds= new DataSet();
strConn = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;
strSql = "select ForfatterID,Overskrift,Tekst,ID from aspnetArtikel";
MySqlDataAdapter daCust = new MySqlDataAdapter(strSql, strConn);
daCust.Fill(ds, "Artikler");
strSql = "select id,Brugernavn from aspnetBruger";
MySqlDataAdapter daOrders = new MySqlDataAdapter(strSql, strConn);
daOrders.Fill(ds, "Brugere");
DataRelation rel = new DataRelation("ArtikelRel", ds.Tables["Artikler"].Columns["ForfatterID"], ds.Tables["Brugere"].Columns["id"]);
ds.Relations.Add(rel);
RepCust.DataSource = ds.Tables["Artikler"];
RepCust.DataBind();
}
void ShowOrders(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
    ((Repeater)e.Item.FindControl("RepOrders")).DataSource = ((DataRowView)e.Item.DataItem).CreateChildView("ArtikelRel");
((Repeater)e.Item.FindControl("RepOrders")).DataBind();
}
}
</script>
</head>
<body>
<H2>Artikler</H2>
<asp:Repeater runat="server" id="RepCust" onItemDataBound="ShowOrders">
<HeaderTemplate>
<!-- Table -->
<table>
</HeaderTemplate>
<ItemTemplate>
<!-- Row -->
<tr>
<td>
<a href="show.aspx?id=<%# ((DataRowView)Container.DataItem)["id"] %>"><%# ((DataRowView)Container.DataItem)["Overskrift"] %> </a>
<br />
<!-- Repeater 2 --><asp:Repeater id="RepOrders" runat="server"><ItemTemplate>
Skrevet af brugeren: <%# ((DataRowView)Container.DataItem)["Brugernavn"]%>
</ItemTemplate></asp:Repeater><!-- // Repeater 2  -->

</td>
</tr>
<!-- // Row -->
</ItemTemplate>
<FooterTemplate>
</table>
<!-- // Table -->
</FooterTemplate>
</asp:Repeater>
</body> </html>
Avatar billede Slettet bruger
29. marts 2008 - 17:46 #1
Altså det virker hvis det er sådan her:

aspnetBruger:
id, Brugernavn
1, Leo
2, Stefan

aspnetArtikler
id,forfatterid,tekst,overskrift
1,1,hej,test

Men hvis aspnetArtikler er sådan her:
aspnetArtikler
id,forfatterid,tekst,overskrift
1,1,hej,test
2,2,hejsd,test2

virker det.
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