Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[ASP.NET 2.0 VB] Dynamische checkboxlist niet kunnen uitleze

Pagina: 1
Acties:

  • Sven_Vdb
  • Registratie: Januari 2006
  • Laatst online: 29-11 19:44
Dit is dus de code op de asp pagina zelf.
Het gaat dus om checkboxlistFiliaal
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  <tr>
                    <td style="height: 102px; width: 345px;" valign="top">
                       <asp:CheckBoxList ID="CheckBoxListFiliaal" runat="server" AutoPostBack="true">
                       </asp:CheckBoxList>
                    </td>
                    <td style="height: 102px; width: 345px;" valign="top">
                        <asp:CheckBoxList ID="CheckBoxListKassa" runat="server">
                        </asp:CheckBoxList>
                    </td>
                    <td style="height: 102px; width: 345px;" valign="top">
                        <asp:CheckBoxList ID="CheckBoxListMedewerker" runat="server">
                        </asp:CheckBoxList>
                    </td>
             </tr> 


De data wordt dynamisch in de checkboxlist ingelezen vanuit een sql server

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
   Protected Sub CheckBoxListFiliaal_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBoxListFiliaal.Load
        Dim cmd As SqlCommand
        Dim dr As SqlDataReader

        Try
            cmd = New SqlCommand("sp_chkfiliaal", conn)
            cmd.CommandType = CommandType.StoredProcedure

            conn.Open()
            dr = cmd.ExecuteReader()

            If Not dr.HasRows Then
                fout = "Er zijn geen filialen beschikbaar"
            Else
                CheckBoxListFiliaal.DataSource = dr
                CheckBoxListFiliaal.DataTextField = "Naam"
                CheckBoxListFiliaal.DataBind()

                dr.Close()
                cmd.Dispose()
                conn.Close()
            End If
        Catch ex As Exception
            MsgBox(fout, MsgBoxStyle.Critical, "Fout opgetreden")
        End Try
    End Sub


Dit gebeurt allemaal nog goed.
Maar dan wil ik de geslecteerde items inlezen in een array.
Maar deze blijven allemaal bij selected op false staan.
Dan heb ik eens geprobeert door hard code.Door statisch item.
En dan lukt dit stukje code wel.Waarom werkt dit bij statisch wel
en dynamisch niet?En hoe kan ik dit oplossen?
Ik word er zot van.Vind geen manier om het oplossen.

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Protected Sub CheckBoxListFiliaal_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBoxListFiliaal.SelectedIndexChanged



        Dim aantal, i As Integer
        Dim filiaalnaam() As String
        Dim filiaalnummer() As String
        Dim aantalGeselecteerd As Integer = 0
        Dim li As ListItem

        aantal = CheckBoxListFiliaal.Items.Count - 1
        ReDim filiaalnaam(aantal)
        ReDim filiaalnummer(aantal)

        If IsPostBack Then
            For Each li In CheckBoxListFiliaal.Items
                If li.Selected = True Then
                    filiaalnaam(i) = li.Value
                    aantalGeselecteerd += 1
                    i += 1
                Else
                    fout = "Geen filiaal geselecteerd"
                End If
            Next li
        End If

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:51

gorgi_19

Kruimeltjes zijn weer op :9

Je mist een controle op Page.IsPostback.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Sven_Vdb
  • Registratie: Januari 2006
  • Laatst online: 29-11 19:44
Probleem is opgelost,zal vanavond al ik thuis ben even zeggen wat ik veranderd heb :)

EDIT:

Ik heb de data nu niet ingeladen bij de checkboxlist on load maar bij de pagina on load.
En dan wanneer er geen postback is.En dat werkt perfect :)

Maar zit met een ander probleem nu.Ik krijg niet de juiste waar uit mijn database via de store procedure

ASP:
1
2
3
4
5
6
7
8
9
CREATE PROCEDURE sp_filiaalnummer
    @naam varchar(255),
    @filiaalnummer varchar(4) OUTPUT
As

SELECT @filiaalnummer = FiliaalNummer  FROM Filiaal 
where Naam = @naam

GO


Hij krijgt het niet in volgende array gelezen :'(

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Dim cmd As SqlCommand
 
        For i = 0 To aantal
            If "" & filiaalnaam(i) <> "" Then
                Try
                    cmd = New SqlCommand("sp_filiaalnummer", conn)
                    cmd.CommandType = CommandType.StoredProcedure
                    Dim Param1 As New SqlParameter("@naam", SqlDbType.VarChar)
                    cmd.Parameters.Add(Param1)
                    Param1.Direction = ParameterDirection.Input
                    Param1.Value = filiaalnaam(i)
                    Dim Param2 As New SqlParameter("@filiaalnummer", SqlDbType.Int)
                    cmd.Parameters.Add(Param2)
                    Param2.Direction = ParameterDirection.Output

                    conn.Open()
                    cmd.ExecuteNonQuery()


                    filiaalnummer(i) = cmd.Parameters("@filiaalnummer").Value


                    cmd.Dispose()

                    conn.Close()
                    conn.Dispose()
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
        Next

[ Voor 90% gewijzigd door Sven_Vdb op 20-09-2007 21:03 ]