Avatar billede Lasse Novice
25. januar 2002 - 17:50 Der er 6 kommentarer og
1 løsning

DataList

Jeg har lavet mig en datalist med brug af de tilhoerende templates. Den indeholder mulighed for at edit en raekke, slette denne, eller opdatere denne.

I tabellen der fremkommer er der 3 kolonner. En primary key (kol1), et tekstfelt(kol2) og tilsidst en raekke hvori der skal vaere en dropdownlist HVIS raekken er valgt til at skulle edit'tes. Hvordan goer jeg saaledes at jeg kan faa fat i dropdown element? Det ligger indeni en template, og derfor debuggeren til mig at den ikke findes i det jeg proever:
dropdownlistObject.DataSource= datareaderObject
Avatar billede odegaard Nybegynder
25. januar 2002 - 18:36 #1
Jeg er ikke helt med på havd du vil gøre, men har du husket at angive hvilken kolonne i datasourcen der indeholder tekst, og hvilken der indeholder den værdi som der sendes fra formen ?
Avatar billede Lasse Novice
25. januar 2002 - 18:40 #2
Jeg vil faktisk dette:

http://www.aspfree.com/quickstart/aspplus/samples/webforms/data/VB/datagrid8.aspx

Med den lille afvigelse at det som laegges i dropdownlisten skal vaere et udtraek fra en database
Avatar billede Lasse Novice
28. januar 2002 - 19:59 #3
har selv fundet ud af det.
Avatar billede Lasse Novice
28. januar 2002 - 20:00 #4
<asp:DropDownList id="dropBrand" DataSource='<%# GetListItems()%>' SelectedIndex='<%# GetIndex() %>' runat="server"/>
Avatar billede odegaard Nybegynder
28. januar 2002 - 20:20 #5
Hmmm.... du skulle nu nok have løst det UDEN inline-tags. Husk at det er et levn fra klassisk ASP, som du bør undgå (og endelig kan undgå).
F.eks. i en sub
  Countries = plDB.GetCountries()  'min DLL som returnerer et dataset fra
                                  'en database, men elles samme princip
  CountryList.DataSource = Countries
  CountryList.DataBind()
  CountryList.Items.Insert(0, new ListItem("Please select country",0))

[...]
Og i html-koden kan man finde følgende:

<asp:dropdownlist size="1" width="200" name="CountryList" id="CountryList" DataTextField="CountryName" DataValueField="CountryID" runat="server"/>


I mit dataset findes to kolonner: "Countryname" med navne på landene, og "CountryID" er deres tilhørende ID nr. -at der så er tre kolonner i dit tilfælde er ligegyldigt.
Avatar billede Lasse Novice
28. januar 2002 - 22:54 #6
ok, men det er det som er mit problem... Jeg har denne kode:

<body style="font: 10pt verdana">

  <form runat="server">

    <span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/><p>

    <ASP:DataGrid id="MyDataGrid" runat="server"
      Width="800"
      BackColor="#ccccff"
      BorderColor="black"
      ShowFooter="false"
      CellPadding=3
      CellSpacing="0"
      Font-Name="Verdana"
      Font-Size="8pt"
      HeaderStyle-BackColor="#aaaadd"
      OnSortCommand="MyDataGrid_Sort"
      OnEditCommand="MyDataGrid_Edit"
      OnCancelCommand="MyDataGrid_Cancel"
      OnUpdateCommand="MyDataGrid_Update"
      OnDeleteCommand="MyDataGrid_Delete"
      DataKeyField="IDnumber"
      AutoGenerateColumns="false"
      AllowSorting="true"
    >

      <Columns>
        <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false"/>
        <asp:BoundColumn HeaderText="IDnumber" SortExpression="IDnumber" ReadOnly="True" DataField="IDnumber" ItemStyle-Wrap="false"/>
        <asp:ButtonColumn Text="Delete Employee" CommandName="Delete"/>
        <asp:TemplateColumn HeaderText="Brand" SortExpression="IDbrand">
          <ItemTemplate>
            <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "brand") %>'/>
          </ItemTemplate>
          <EditItemTemplate>
            <asp:DropDownList id="dropBrand" DataTextField="brand" DataValueField="IDbrand" runat="server"/>
          </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:BoundColumn HeaderText="Model" SortExpression="model" DataField="model" ItemStyle-Wrap="false"/>
        <asp:BoundColumn HeaderText="Doors" SortExpression="doors" ReadOnly="True" DataField="doors" />
        <asp:BoundColumn HeaderText="Year" SortExpression="year" ReadOnly="True" DataField="year" />
      </Columns>
    </ASP:DataGrid>
  </form>
</body>

Som du nok laegger maerke til saa er dropdownlisten indeni en template. Min edit funktion ser saadanne ud:

    Sub MyDataGrid_Edit(Sender As Object, E As DataGridCommandEventArgs)
        MyDataGrid.EditItemIndex = CInt(E.Item.ItemIndex)
        BindGrid("IDnumber")

        Dim cmd1 As SqlCommand       
        Dim dtr1 as SqlDataReader

        cmd1 = New SqlCommand( "select * from brands", MyConnection )
        dtr1 = cmd1.ExecuteReader()
        dropBrand.DataSource = dtr1
        dropBrand.DataBind()
        dtr1.Close()
    End Sub
Avatar billede Lasse Novice
28. januar 2002 - 22:57 #7
men den kan ikke se min id=dropBrand ??? Derfor har jeg kommet udenom det paa den anden maade. Kan du se en loesning hertil, saa er pointene der stadig.
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