Avatar billede kapoou Nybegynder
29. december 2006 - 10:41 Der er 21 kommentarer

Dropdown boks i detailsview

Hvordan er det muligt at få en dropdown boks med i detailsview, og hvordan er det så muligt at få data dynamisk ind i dropdownboksen.
Avatar billede kapoou Nybegynder
29. december 2006 - 11:40 #1
Jeg har nu fået ebn dropdown boks ind i min detailsview og data ind i dropdown boksen men jeg kan ikke få den til at gemme den valgte værdi ved update.

Jeg har brugt følgende kode for at få den ind i Detailsview.

<asp:TemplateField>
<EditItemTemplate>
<asp:DropDownList.....>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
Avatar billede dr_chaos Nybegynder
30. december 2006 - 15:50 #2
du skal indsætte
SelectedValue='<%# Bind("ProductID") %>' på din dropdownliste.
Avatar billede kapoou Nybegynder
02. januar 2007 - 09:30 #3
Men problemet er faktisk at der slet ikke bliver gemt noget fra databasen.
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 09:36 #4
hvordan ser din aspx side ud.
Avatar billede kapoou Nybegynder
02. januar 2007 - 09:40 #5
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="id"
                DataSourceID="SqlDataSource1" Height="50px" Width="500px">
                <Fields>
               
<asp:BoundField DataField="campaignname" HeaderText="campaignname" SortExpression="campaignname" />
<asp:BoundField DataField="companyname" HeaderText="companyname" SortExpression="companyname" />
<asp:TemplateField HeaderText="Activity" SortExpression="activity">
  <EditItemTemplate>
    <asp:DropDownList id="activity" ValidationGroup="formular" runat="server" AppendDataBoundItems=true DataSourceID="SqlDataSource_activity"    DataTextField="activitystat" DataValueField="id">
    </asp:DropDownList>
  </EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="description" HeaderText="description" SortExpression="description" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
                </Fields>
            </asp:DetailsView>
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 09:42 #6
prøv med
  <asp:DropDownList id="activity" ValidationGroup="formular" runat="server" AppendDataBoundItems=true DataSourceID="SqlDataSource_activity"  selectedvalue='<%# Bind("id")%>'  DataTextField="activitystat" DataValueField="id">
Avatar billede kapoou Nybegynder
02. januar 2007 - 09:45 #7
ja ok, men problemet er som sagt ikke t aden ikke vælger den valgte værdi efter at der er blevet gemt. Problemet er at den slet ikke gemmer værdien i databasen.
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 09:47 #8
vis mig lige SqlDataSource1
Avatar billede kapoou Nybegynder
02. januar 2007 - 09:54 #9
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
            SelectCommand="SELECT [campaignname],[companyname],[activity],[description] FROM [DB] where [id]=@id"
            UpdateCommand="UPDATE [DB] set [campaignname]=@campaignname,[companyname]=@companyname,[activity]=@activity,[description]=@description where [id]=@id"
           
InsertCommand="INSERT into [DB] ([campaignname],[companyname],[activity],[description]) VALUES( @campaignname, @companyname, @activity, @description)">
Avatar billede kapoou Nybegynder
02. januar 2007 - 09:55 #10
Men den vil ikke godkende at der er et felt der hedder activity.
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 09:57 #11
prøv med
  <asp:DropDownList id="activity" ValidationGroup="formular" runat="server" AppendDataBoundItems=true DataSourceID="SqlDataSource_activity"  selectedvalue='<%# Bind("activity")%>'  DataTextField="activitystat" DataValueField="id">
Avatar billede kapoou Nybegynder
02. januar 2007 - 10:06 #12
Ok. Hvad er forskellen i forhold til det der allerede står der lige foruden at den tager selectedvalue med?
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 10:29 #13
Først vidste jeg ikke hvilket felt som skulle vises i dropdownlisten.
Derfor havde jeg tilføjet dette til dropdownlisten:
selectedvalue='<%# Bind("id")%>'

Men med sql datasourcen kunne jeg se at det var activity som skulle bruges i dropdownlisten, derfor ændrede jeg  det til:
selectedvalue='<%# Bind("activity")%>'

Virker det nu ?
Avatar billede kapoou Nybegynder
02. januar 2007 - 10:39 #14
Jeg tror at vi går lidt fejl af hinanden. Er selectedvalue ikke for at tjekke hvilken værdi der som default skal være vist i dropdownlisten på siden når den loades? Altså den værdi som tidligere er blevet gemt.
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 10:42 #15
nej kun tildels. Den bruges også til at fortælle sqldatasourcen at activity værdien kommer fra den specifikke kontrol.
Avatar billede kapoou Nybegynder
02. januar 2007 - 10:48 #16
Ok. Den kommer nu med følgende fejl når man prøver at editere. Fejlen kommer lige så snart at man skifter view til editmode

System.ArgumentOutOfRangeException: 'activity' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 11:13 #17
Det er fordi du forsøger at sætte en værdi i dropdownlisten som ikke eksisterer.
Avatar billede kapoou Nybegynder
02. januar 2007 - 11:23 #18
Mit problem er hvordan jeg kan hente dataen ud fra feltet uden at bruge @activity da den ikke vil godkende det da feltet ligger i en <EditItemTemplate>.
Avatar billede kapoou Nybegynder
02. januar 2007 - 12:18 #19
Jeg får følgende fejl.

System.Data.SqlClient.SqlException: Must declare the scalar variable "@activity".
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 13:06 #20
hvad type er feltet activity?
Avatar billede dr_chaos Nybegynder
02. januar 2007 - 14:17 #21
prøv evt at tilføje:
<ItemTemplate >
            <asp:Label Runat="server" Text='<%# Bind("activity") %>' ID="Label1"></asp:Label>
        </ItemTemplate>
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