Avatar billede donpedroper Nybegynder
20. februar 2008 - 18:56 Der er 5 kommentarer og
1 løsning

Dropdownlist udskrivning

Godaften.. Jeg er for nylig begyndt at lære ASP.Net og er nu ved at forsøge mig med en dropdownlist som jeg har lavet i visual studio.. Jeg har følgende 5 valgmuligheder:

<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="0">Vælg</asp:ListItem>
<asp:ListItem Value="1">5 km</asp:ListItem>
<asp:ListItem Value="2">10 km</asp:ListItem>
<asp:ListItem Value="3">14 km</asp:ListItem>
<asp:ListItem Value="4">21 km</asp:ListItem>
</asp:DropDownList>

Nu er spørgsmålet så bare, hvordan får jeg udskrevet valgmuligheden, som er blevet valgt når jeg trykker på en knap??

Når den blot står på "Vælg" muligheden skal den ikke udskrive noget, men ved de 4 øvrige km-ting skal den blot udskrive hvor mange km man har valgt.

Endvidere vil jeg gerne vide hvordan jeg får den til at "nulstille" når jeg trykker på min "Ryd"-knap, således den går tilbage på "Vælg" i valgmulighederne, når jeg trykker på den knap?

Skriv endelig, hvis der er mere i har brug for at vide ;)
Avatar billede thesurfer Nybegynder
20. februar 2008 - 19:12 #1
I din postback-kode kan du checke DropDownList1's SelectedValue (mener jeg). Her kan du så checke om værdien er "0" (som jo er "Vælg"). Hvis værdien ikke er "0", kan du bare udskrive den.

"Ryd"-knappen er bare en knap af typen "Reset".. formen klarer resten..

Skriv evt hvilket sprog (VB.NET, C#, osv) du bruger til ASP.NET., og om du har brug for yderligere hjælp..
Avatar billede donpedroper Nybegynder
20. februar 2008 - 20:53 #2
Hvordan skal jeg så skrive koden? Er ikke helt med desværre, da jeg jo som sagt også er ny indenfor dette sprog ;)

Hvordan laver jeg denne såkaldte reset button? Hidtil har jeg blot lavet en knap, som så ændrer alle textboxene og labels til "" så der ikke står noget der, men der må næsten være en nemmere måde som du nævner..

Mht sprog er det C#
Avatar billede thesurfer Nybegynder
20. februar 2008 - 21:18 #3
Der er et lille problem.. :-)

1) ASP.NET har vist ikke en reset knap.. så der kan du bruge HTML's reset knap:
<input type="reset" ID="reset" runat="server" Text="Nulstil" />

2) For at der kan komme til at stå "Du valgte: 5 km", skal formen submittes.. f.eks. via AutoPostBack i egenskaber for din DropDownList.. Hvis du bruegr AutoPostBack (via egenskaber), kan du ikke rigitgt bruge HTML's reset, da den resetter til det stadig elementerne er i, når siden loades, hvilket er det valgte (pga postback)..

En mulig løsning:

1x DropDownList, 1x HTML reset knap, 1x submit-knap.

Man vælger f.eks. "5 km" i listen og klikker derefter på submit-knappen. AutoPostBack skal så sættes til False for DropDownList.

Lyder det som en brugbar løsning?
Avatar billede thesurfer Nybegynder
20. februar 2008 - 21:20 #4
Eksempel:

----- default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="km" runat="server">
        <asp:ListItem Value="0">V&#230;lg</asp:ListItem>
        <asp:ListItem Value="1">5 km</asp:ListItem>
        <asp:ListItem Value="2">10 km</asp:ListItem>
        <asp:ListItem Value="3">14 km</asp:ListItem>
        <asp:ListItem Value="4">21 km</asp:ListItem>
        </asp:DropDownList>
        <asp:Button ID="send" runat="server" Text="Send" />
        <input type="reset" ID="reset" runat="server" Text="Nulstil" />
        <br />
        <asp:Literal ID="svar" runat="server"></asp:Literal></div>
    </form>
</body>
</html>


----- default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
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;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            // Få fat på din dropdownliste:
            DropDownList km = (DropDownList)FindControl("km");

            // Få fat på det element, som kommer til at indeholdet svaret
            Literal svar = (Literal)FindControl("svar");

            // Få fat på værdien (value="Nogether"):
            string valg = km.SelectedValue; // indeholder f.eks.: 0, 1, 2...

            // Få fat på teksten på den valgte mulighed:
            string tekst = km.SelectedItem.Text; // indeholder f.eks.: 5 km, 10 km, osv..

            // Spørg om man har valgt "Vælg", som har værdien "0" ifølge din DropDownList:
            if (valg == "0")
            {
                // Man har valgt "Vælg", så vi fjerner teksten igen:
                svar.Text = "";
            } else {
                // Værdien er IKKE "0", hvilket betyder at "Vælg" ikke er valgt,
                // hvilket igen betyder at antallet af km skal udskrives:
                svar.Text = "Du valgte: " + km.SelectedItem.Text;
            }
        }
    }
}
Avatar billede donpedroper Nybegynder
21. februar 2008 - 09:42 #5
Det var lidt mere avanceret end jeg havde regnet med, men jeg takker ;) Smid et svar og du får dine points
Avatar billede thesurfer Nybegynder
22. februar 2008 - 00:34 #6
Svar :-)
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