Avatar billede tjay8 Nybegynder
20. april 2007 - 13:17 Der er 9 kommentarer og
2 løsninger

koden bag registrerer ikke label felt så man ik kan kalde på det

Jeg har lavet et gridview med forbindelse til en sql database hvor i jeg bruger denne datalist.
.aspx filen
<asp:DataList ID="DataList1" runat="server" DataKeyField="PID" DataSourceID="SqlDataSource1"
            Height="83px" Width="625px">
            <ItemTemplate>
            <div style="position:absolute;top:0px;left:0px;">
                <asp:Label ID="ProductnameLabel" runat="server" Text='<%# Eval("Productname") %>'></asp:Label><br />
                <asp:Label ID="DescriptionLabel" runat="server" Text='<%# Eval("Description") %>'>
                </asp:Label><br />
                <img src="<%# Eval("Image") %>" alt="<%# Eval("Productname") %>"><br />
                Pris:
                <asp:Label ID="PriceLabel" runat="server" Text='<%# Eval("Price") %>'></asp:Label> Kr.<br />
                På lager:
                <asp:Label ID="StockLabel" runat="server" Text='<%# Eval("Stock") %>'></asp:Label> Stk.<br />
                <br />
                <asp:Button ID="Buybtn" runat="server" OnClick="koebvare" Text="Læg i indkøbskurven" />
                </div>
            </ItemTemplate>
        </asp:DataList>
i koden bagved altså .cs filen kalder jeg så på værdierne (til at starte med bare ProductnameLabel for at kunne hive den værdi ind i et dataset men den bliver ved med at sige: "The name 'ProductnameLabel' does not exist in the current context"

.aspx.cs filen:
ds = (DataSet)Session["dataset"];
        DataTable shopcart = ds.Tables["shopcart"];
        DataRow nyvare;
        nyvare = shopcart.NewRow();
        nyvare["scvarenavn"] = ProductnameLabel.Text;
        shopcart.Rows.Add(nyvare);
        ds.AcceptChanges();

        vissc.DataSource = ds.Tables["shopcart"];
        vissc.DataBind();

        //flyt den nye vare til datasettet
        Session["dataset"] = ds;

Hvad kan jeg gøre jeg fatter det simpelthen ikke?
Avatar billede runesoft Nybegynder
20. april 2007 - 13:49 #1
ProductnameLabel ligger på DataList, og der er derfor en ProductnameLabel for hver raække i listen..  du skal have fat i den enkelte række før du kan tilgå ProductnameLabel
Avatar billede neoman Novice
20. april 2007 - 13:49 #2
Det er fordi det der er begravet i en container (som data list/gridview/whatever) er ikke umiddelbart synligt  -desuden "ProductLabel" er jo ikke entydig , da hvilken position refererer den til ? :-)
Jeg ved ikke helt hvordan DataList funker,  men man skal jo loope igennem dens items, og i hver item finde den relevante control.

Noget i stil med

For  each myItem as DataListItem in DataIist1

Next

Inde i each item, kan det være  din label er tilgængelig direkte, ellers skal den findes :

dim myLabel as Label
myLabel = myItem.FindControl("ProductLabel"), Label)
' og SÅ kan du få fat i teksten
hvad som helst = mylabel.text

dvs vil jeg gætte på alt i alt
For  each myItem as DataListItem in DataList1
 
  hvad som helst  = myItem.FindControl("ProductLabel"), Label).text
 
Next
Avatar billede tjay8 Nybegynder
23. april 2007 - 12:35 #3
er du sikker på at det er c# kode for det virker ikke
Avatar billede snepnet Nybegynder
23. april 2007 - 20:58 #4
Det er vb.net - du kan oversætte her:
http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx
Men det er noget i denne stil:

foreach(DataListItem item in DataList.Items)
{
  Label l = item.FindControl("ProductLabel") as Label;
  if(l != null)
  {
    // og du kan så få fat i indholdet
  string indhold = l.Text;
  }
}

Mvh
Avatar billede tjay8 Nybegynder
28. april 2007 - 17:28 #5
tak det hjalp så må der smides nogle svar af sted så jeg kan uddeligere point
Avatar billede snepnet Nybegynder
28. april 2007 - 21:11 #6
Hvem vil du have svar fra?
Mvh
Avatar billede tjay8 Nybegynder
30. april 2007 - 10:26 #7
jer begge så gir jeg jer 100 point hver
Avatar billede tjay8 Nybegynder
09. maj 2007 - 12:36 #8
bare send et svar afsted så acceptere jeg den første der er postet
Avatar billede snepnet Nybegynder
28. maj 2007 - 00:59 #9
Vil i andre ikke være med på svar her?
Mvh
Avatar billede neoman Novice
28. maj 2007 - 01:24 #10
Så pyt da:-)
Avatar billede snepnet Nybegynder
01. juli 2007 - 08:48 #11
Kan vi afslutte her tjay8?
Mvh
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