Just nu i M3-nätverket
Gå till innehåll

Loopa fram en checkboxlista


jjjj

Rekommendera Poster

Programerar i asp.NET och har ett problem.

Ska hämta värden ur en SQL-databas och lista upp dessa med checkboxar framför i ett formulär. I .aspx-filen används <asp:CheckBox id="Kategorilista" Runat="server"></asp:CheckBox> och i .aspx.vb filen försöker jag göra denna loop:

 

Dim strSQL As String = "SELECT Kategori_namn FROM Kategori"

Dim strResult As String

 

Dim objConn As New SqlConnection(strConn)

Dim objCommand As New SqlCommand(strSQL, objConn)

Dim objDataReader As SqlDataReader

 

objConn.Open()

objDataReader = objCommand.ExecuteReader()

 

Do While objDataReader.Read() = True

 

 

strResult += objDataReader("Kategori_namn")

strResult += "<br>"

 

Loop

 

objDataReader.Close()

objConn.Close()

 

Kategorilista.Text = strResult

 

Jag får inte fram mer än en checkbox, vad gör jag för fel?

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Usch Fy på dig...

Ta genast bort den koden. :)

 

Du har missat poängen med ASP.NET om du bygger ihop en sträng och sedan skriver ut den som en text-sträng.

 

Du skall använda dig av någon komponent på som presenterar datan till dig, typ en repeater/datalist verkar bra till det du vill. (http://www.w3schools.com/aspnet/aspnet_dbconnection.asp) även (http://docs.aspng.com/quickstart/aspplus/doc/webdatalist.aspx) som visar hur då får in en checkbox i din repeater/datalist

 

 

om vi går till din kod, så är det inte så konstigt att du endast får fram en checkbox, och det är för att du endast har EN checkbox-objekt på din sida som du sedan binder ALLA namn till

 

1. du bygger ihop alla namn till 1 sträng.

2. du kopplar denna enda sträng till ETT objekt.

 

Alltså kan endast 1 objekt visas...

 

Så läs igenom överståend länkar så blir det rätt.

 

- Magnus

-----------------------------------------------------

Jag är inte kaxig, jag är bara så jävla bäst...

 

Länk till kommentar
Dela på andra webbplatser

Usch Fy på dig...

Ta genast bort den koden. :)

 

När jag började läsa om ASP.NET så var det, enligt boken, en fördel att kunna traditionell ASP.

Men jag har insett att det är snarare ett stort minus.

Det är nästan omöjligt att inte falla tillbaka till det "gamla vanliga" spagetti koden....

 

 

--------------------------------------------------

JAVA-PROGRAMMERING - överenskommelse om fika-tiderna på jobbet

 

[inlägget ändrat 2003-02-19 09:37:32 av OZn]

Länk till kommentar
Dela på andra webbplatser

Tack för tipset, men har tyvärr inte riktigt fått till det än. Lyckas loopa fram en lista i formuläret med hjälp av en "datalist" men får fortfarande inte fram checkboxarna framför...har läst på sidorna du tipsade om fast förstår inte hur man ska få in det i min kod?

Så här ser datalistan ut i formulär-filen:

 

<asp:datalist id=MyDataList runat="server">

<ItemTemplate>

<%#Container.DataItem("Kategori_namn")%>

</ItemTemplate>

</ASP:DATALIST>

 

och så här ser det ut i Codebehind-filen:

'strconn deklareras här

Dim DS As DataSet

Dim objConn As New SqlConnection(strConn)

Dim objCommand As SqlDataAdapter

 

 

objCommand = New SqlDataAdapter("SELECT Kategori_ID, Kategori_namn FROM Kategori", objConn)

 

DS = New DataSet()

objCommand.Fill(DS, "Kategori")

 

MyDataList.DataSource = DS.Tables("Kategori").DefaultView

MyDataList.DataBind()

 

Har du nåt' bra kodtips? :))

 

 

 

Länk till kommentar
Dela på andra webbplatser

Jag håller med om att det är ett minus att kunna ASP innan ASP.NET eftersom man är så insnöad på "ASP tänket" att det blir "fel" sätt att lösa problemen.

 

Däremot så är det en klar fördel att kunna programmera OOP innan man hoppar på ASP.NET eftersom det är Objekt orienterat..

 

Följande kodsnutt hittade jag på sidan, där lägger man till en checkbox i datalistan.

 

<ASP:DataList id="MyDataList" runat="server">

   <ItemTemplate>
        <asp:CheckBox id="Save" runat="server"/> <b>Save to Favorites</b>
   </ItemTemplate>

</ASP:DataList>

 

Sedan använder man DataBinder() för att kolla om checkboxen skall vara ikryssad eller inte. Har tyvärr inget färdigt exempel liggande, men det finns massor med exempel på nätet, sök på ASP.NET, DataList, CheckBox, DataBinder så borde du hitta ett exempel.

 

- Magnus

-----------------------------------------------------

Jag är inte kaxig, jag är bara så jävla bäst...

 

Länk till kommentar
Dela på andra webbplatser

Har fått det att fungera nu, skrev på följande sätt i formulär-filen:

 

<asp:datalist id=MyDataList runat="server">

<ITEMTEMPLATE>

<INPUT id=Checkbox1 type=checkbox name=Checkbox1>

<%#Container.DataItem("Kategori_namn")%>

</ITEMTEMPLATE>

</asp:datalist>

Jag trodde att det skulle fungera med <asp:checkbox> men se icke då....

Problemet kanske är att formuläret är gjort i enbart HTML-kod från början ( och dessutom kodat i Lotus Notes), jag ska göra om det till Visual Studio.NET-miljö. Har lite svårt att konvertera allting, vet inte riktigt hur man blandar HTMLserver-kontroller och ASP.NET server-kontoller.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...