Professional Documents
Culture Documents
Demo Projektet her er en website (ASP.NET) hvor man kan vælge mellem tre forskellige dimser i
dropdown menu, og når der klikkes på en dims, kommer en beskrivelse af dimsen frem i en textbox.
Indhold af default.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server"
onselectedindexchanged="DropDownList1_SelectedIndexChanged"
AppendDataBoundItems="True" AutoPostBack="True">
<asp:ListItem Value="-1">- Dimser -</asp:ListItem>
</asp:DropDownList>
</div>
<asp:TextBox ID="txtResult" runat="server" Height="168px" TextMode="MultiLine"
Width="322px"></asp:TextBox>
</form>
</body>
</html>
Indhold af default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient; // Vigtig !!
using System.Web.Configuration; // Vigtig !!
if (!IsPostBack)
{
//Bruges ikke, viser hvordan der laves manuel befolkning af dropdownliste,
//hvis data ikke skal komme fra database
//DropDownList1.Items.Add("solarDatalogger");
//DropDownList1.Items.Add("stokerDatalogger");
//DropDownList1.Items.Add("homeAutomation");
con.Open();
SqlDataReader myReader = cmd.ExecuteReader();
DropDownList1.DataSource = myReader;
DropDownList1.DataTextField = "Titel";
DropDownList1.DataValueField = "Beskrivelse";
DropDownList1.DataBind();
myReader.Close();
con.Close();
}
}
con.Open();
SqlDataReader myReader = cmd.ExecuteReader();
myReader.Read();
txtResult.Text = myReader["Beskrivelse"].ToString();
myReader.Close();
con.Close();
}
}
Opret en tabel i databasen, enten sqlExpress eller som brugt her, msSQL 2008 R2.
Sæt TitelID til primarykey (højreklik, set primary key) og sørg for den selv tæller op ved at sætte
Identity til yes, se billedet her hvordan:
Opret nu felterne og gem ved at trykke på alt s og vælg et navn feks. TitelBeskrivelse.
Herefter skriv nogle data ind i databasefelterne, dem der skal vises i dropDownList og dem som der
skal åbnes og vises når der klikkes på dropDownList.
Højreklik på tabel, og klik på 'show table data' og skriv noget sigende ind.
Web.Config Editeres
Streng vist herunder, men det anbefales at bruge http://connectionstrings.com/ her finde
connectionstring til alle databaser.. Det er bedst at copy/paste koden direkte..
<connectionStrings>
<add name="NavnDerBrugeICsharpkoden" connectionString="Data Source=localhost;Initial
Catalog=tabellensNavnImsSQLdb;Integrated Security=True;Pooling=False"/>
</connectionStrings>
Alternativt kan streng kopierer fra databasen, klik på tabellens navn og åben properties vinduet.
indsæt: stringconString =
WebConfigurationManager.ConnectionStrings["NavnDerBrugeICsharpkoden"].ConnectionString;
uskift:
con.Open();
SqlDataReader myReader = cmd.ExecuteReader();
DropDownList1.DataSource = myReader;
DropDownList1.DataTextField = "Titel";
DropDownList1.DataValueField = "Beskrivelse";
DropDownList1.DataBind();
myReader.Close();
con.Close();
Ofte vil man gerne have der står noget i dropdown box der guider til hvad den kan feks: - Dimser -
• Klik først på den lille pil th. for dropdown boxen / comboboxen
• Her vælges edit item
• List collection Editor kommer frem
• tryk på add og
• ændre text i højre side til den test der skal stå i dropDownList når der ikke er valgt noget
• i value SKAL der skrives -1 *
* I value kan man ved behov skrive feks 2, hvorefter der startes ved menupunkt 2 ved load af
websiten
Vis nu webstedet i browseren. Nederst i browser står der kort: sender anmodning, det er
autopostback der virker og sender tilbage til browser. Der kommer ikke noget frem før
Nu skal dropdownList sættes op så der kommer noget 'action', eller rettere selectedItem skal nu
bruges til at finde noget i databasen:
con.Open();
SqlDataReader myReader = cmd.ExecuteReader();
myReader.Read();
txtResult.Text = myReader["Beskrivelse"].ToString();
myReader.Close();
con.Close();