Välkommen till wF.
Här hittar du nog svaret om jag fattat det rätt, välj språket
genom att klicka på länkarna längst upp:
29 svar · 628 visningar · startad av piddy
Hej!!
Här kommer en fråga från en .NET-nybörjare:
Jag har skapat en aspx-sida där jag hämtar information från en databas (fyller ett DataSetobjekt med en SQLQuery). Jag ser att kopplingen funkar som den ska när jag testar med Response.Write.
Nu till min fråga: Hur gör jag för att binda data till en webbkontroll (i detta fall en <asp:Listbox>) i formuläret? Jag vill att all info i en av databasens tabellkolumner ("tabell Person kolumn Namn") ska visas i Listboxen.
Innehållet är således av typen string.
Någon? Please?
Välkommen till wF.
Här hittar du nog svaret om jag fattat det rätt, välj språket
genom att klicka på länkarna längst upp:
tack för snabbt svar!
tyvärr verkar det inte vara riktigt vad jag letar efter koden
<asp:dropdownlist id="Category" runat=server>
<asp:listitem >psychology</asp:listitem>
<asp:listitem >business</asp:listitem>
<asp:listitem >popular_comp</asp:listitem>
</asp:dropdownlist>
verkar ju skapa en dropdownlist med "hårdkodat" innehåll...vad jag far efter är en funktion som motsvarar ASP:s
<%Do while NOt rs.EOF%> för att få skriva ut innehåller i databasen till kontrollen...
minDropDownList.Datasource = minObjectReader;
minDropDownList.DataTextField = "kolumnnamn" // det som visas
minDropDownList.DataValueField = "kolumnnamn" // värdet
minDropDownList.DataBind()
så fyller du en DropDownList från en datakälla.
Tack, det ska jag pröva!!
Jag kommer att ha flera webbkontroller på sidan som ska hämta data från olika databastabeller, kan jag ändå använda mig av en DataReader? Som min kod är nu har jag använt mig av ett DataSet.
DataList eller DataGrind är ju oftast bättre än DataReader om du skall mata ut data.
DataList eller DataGrind är ju oftast bättre än DataReader om du skall mata ut data.
Hm? En datalist och en datagrid är ju asp.net-kontroller för att presentera data, en datareader är ju en teknik att läsa data... två helt olika saker! Du kan däremot använda en datareader för att fylla en DDL om du vill.
:)
Datasource kan använda flera olika typer av indata. T.ex DataReader, DataTable, ArrayList mm.
nu har jag testat och fått infon i databasen att visas i ListBoxen, jättebra!
men hur gör jag för att ha ett default-option inställt av istället för att det första namnen visas?
i asp skrev man ju <OPTION value= "Välj" selected>Välj</OPTION> eller nåt liknande...
myDD.SelectedIndex = myDD.Items.IndexOf(myDD.Items.FindByText("Denna ska vara Selected"));
Vill du selecta på Value istället för text så gör då ganska självklart FindByValue
Eller som Network menar, kort och gott
myDD.SelectedIndex = 123;
Grynet skrev:
myDD.SelectedIndex = myDD.Items.IndexOf(myDD.Items.FindByText("Denna ska vara Selected"));
Kanske en enklare metod...
myDD.Items.FindByText("Denna ska vara Selected").Selected = true;
eller om du vill söka i value:
myDD.Items.FindByText("Denna ska vara Selected").Selected = true;
Usch vad det var enklare..tyckte mitt sätt var lite omständigt, danke
men då väljer jag ju bara bland de poster som finns i databasen (dvs en hel drös med olika namn). eller? jag vill sätta selectedindex till ett värde som jag anger själv, typ "välj".
sedan när användare trycker på dropdownlisten ska alla olika alternativ komma fram....
det bästa sättet att enge ett eget värde är med denna kod:
ListItem item = new ListItem();
item.Text = "Välj";
item.Value = "#";
item.Selected = true;
myDD.Items.Add(item);
...som default så är ju det värdet som ligger högst upp valt, du behöver alltså bara lägga till "Välj" först och sedan fylla på med data från din db.
menar du att jag ska lägga till "välj" i min databas?
nu visas ju datan i databasen vid händelsen Page_Load...kanske är det där felet ligger....
Kan man få se på koden du använder?
självklart! =)
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>
<%@ Page Language="VB" %>
<script runat="server">
sub Page_Load(obj as Object, e as Eventargs)
'Databaskoppling
dim objForfattare as new OleDbCommand ("SELECT \* FROM Forfattare)
dim objReader as OleDbDataReader
oConn.Open
objReader = objForfattare.ExecuteReader
DDLSignatur.DataSource = objReader
DDLSignatur.DataTextField = "Namn"
DDLSignatur.DataValueField = "Namn"
'prövar att ställa in ett defaultvärde
dim välj = new ListItem()
välj.Text = "Välj"
välj.Value = "#"
välj.Selected = true
DDLSignatur.Items.Add(välj)
DDLSignatur.DataBind()
end sub
</script>
....
och i html-koden:
<asp:DropDownList id="DDLSignatur" Runat="server" />
..................