Toon posts:

[ASP.NET] Waarde uit listbox halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Visual Basic .NET:
1
Response.Write(ListBox1.SelectedValue)


Deze code zou de door de gebruiker geselecteerde item in de listbox op mijn WebUserControl moeten weer geven, maar deze is leeg.

Wat doe ik verkeerd? Waar moet ik kijken?

Volgens voorbeeld code zou het zo moeten werken
(http://www.daniweb.com/techtalkforums/thread6499.html)

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:35
Ik denk dat deze code de 'value' van het geselecteerde item moet displayen.
Een item van een listbox heeft in asp.net een 'value' en een 'text'.
Text is hetgeen dat je ziet, value is de (onzichtbare) waarde die je aan het item kunt hangen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op donderdag 21 april 2005 @ 15:18:
Ik denk dat deze code de 'value' van het geselecteerde item moet displayen.
Een item van een listbox heeft in asp.net een 'value' en een 'text'.
Text is hetgeen dat je ziet, value is de (onzichtbare) waarde die je aan het item kunt hangen.
Ja dat is de bedoeling ook, de text is een naam, en de value is gebruikersid.Beide blijven leeg als ik deze oproep met bv, response.write..

Response.Write(ListBox1.SelectedItem.Value) geeft Object reference not set to an instance of an object.

[ Voor 14% gewijzigd door Verwijderd op 21-04-2005 15:29 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 11:55

mulder

ik spuug op het trottoir

Is ListBox1 jouw listbox, de listbox die naar het Webform hebt gesleept?
Is er wel een item geselecteerd?

[ Voor 4% gewijzigd door mulder op 21-04-2005 15:37 ]

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:35
Dan heb je geen item geselecteerd; SelectedItem zal null zijn.
(of je mist iets met ispostback enzo....

[ Voor 26% gewijzigd door whoami op 21-04-2005 15:37 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Don Facundo schreef op donderdag 21 april 2005 @ 15:37:
Is ListBox1 jouw listbox, de listbox die naar het Webform hebt gesleept?
Is er wel een item geselecteerd?
Ja en Ja

Verwijderd

Topicstarter
whoami schreef op donderdag 21 april 2005 @ 15:37:
Dan heb je geen item geselecteerd; SelectedItem zal null zijn.
(of je mist iets met ispostback enzo....
Ik zal even alle code posten

aspx
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="ManageUsers.ascx.vb" Inherits="Forum1.ManageUsers" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<table height="100%" width="100%">
    <tr>
        <td align="center">
            <table style="WIDTH: 459px; HEIGHT: 342px">
                <tr>
                    <td style="WIDTH: 85px"><asp:listbox id="ListBoxNonAdmins" runat="server" Height="330px" Width="215px"></asp:listbox></td>
                    <td><asp:button id="btn_Remove" runat="server" Text="<< Verwijderen"></asp:button><br>
                        <asp:button id="btn_Add" runat="server" Text=">> Toevoegen "></asp:button></td>
                    <td><asp:listbox id="ListBoxAdmins" runat="server" Height="330px" Width="215px"></asp:listbox></td>
                </tr>
            </table>
            <asp:Label id="Label1" runat="server" ForeColor="Red" Visible="False">Er moet minimaal 1 beheerder aanwezig blijven</asp:Label></td>
    </tr>
</table>


codebehind
Visual Basic .NET:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Imports System.Data.SqlClient

Public Class ManageUsers
    Inherits System.Web.UI.UserControl

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label
    Protected WithEvents ListBoxNonAdmins As System.Web.UI.WebControls.ListBox
    Protected WithEvents btn_Remove As System.Web.UI.WebControls.Button
    Protected WithEvents btn_Add As System.Web.UI.WebControls.Button
    Protected WithEvents ListBoxAdmins As System.Web.UI.WebControls.ListBox

    'NOTE: The following placeholder declaration is required by the Web Form Designer.
    'Do not delete or move it.
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LoadAdmins()
        LoadNonAdmins()
    End Sub

    Private Sub LoadAdmins()
        Dim myconnection As SqlConnection
        Dim SqlConn As New DBConn
        myconnection = New SqlConnection(SqlConn.ConnectionString)
        Dim myCommand As New SqlDataAdapter("Tsp_Forum_GetAdmins", myconnection)

        Dim ds As New DataSet
        myCommand.Fill(ds, "Admins")
        ListBoxAdmins.DataSource = ds
        ListBoxAdmins.DataSource = ds.Tables(0)
        ListBoxAdmins.DataTextField = ds.Tables(0).Columns("Username").ColumnName.ToString()
        ListBoxAdmins.DataValueField = ds.Tables(0).Columns("UserID").ColumnName.ToString()
        ListBoxAdmins.DataBind()


    End Sub

    Private Sub LoadNonAdmins()
        Dim myconnection As SqlConnection
        Dim SqlConn As New DBConn
        myconnection = New SqlConnection(SqlConn.ConnectionString)
        Dim myCommand As New SqlDataAdapter("Tsp_Forum_GetNonAdmins", myconnection)

        Dim ds As New DataSet
        myCommand.Fill(ds, "Admins")
        ListBoxNonAdmins.DataSource = ds
        ListBoxNonAdmins.DataSource = ds.Tables(0)
        ListBoxNonAdmins.DataTextField = ds.Tables(0).Columns("Username").ColumnName.ToString()
        ListBoxNonAdmins.DataValueField = ds.Tables(0).Columns("UserID").ColumnName.ToString()
        ListBoxNonAdmins.DataBind()
    End Sub

    Private Sub btn_Remove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Remove.Click
        If ListBoxNonAdmins.Items.Count = 1 Then
            Label1.Visible = True
        Else
            Dim SqlConn As New DBConn
            Dim myConnection As SqlConnection = New SqlConnection(SqlConn.ConnectionString)
            Dim myCommand As SqlCommand = New SqlCommand("Tsp_Forum_DeleteAdmin", myConnection)
            myCommand.CommandType = CommandType.StoredProcedure
            Dim parameterUserID As SqlParameter = New SqlParameter("@UserID", SqlDbType.Int, 4)
            parameterUserID.Value = ListBoxNonAdmins.SelectedItem.Value
            myCommand.Parameters.Add(parameterUserID)
            myConnection.Open()
            myCommand.ExecuteNonQuery()
            myConnection.Close()
        End If
    End Sub

    Private Sub btn_Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Add.Click
        'Add New Admin
        Dim SqlConn As New DBConn
        Dim myConnection As SqlConnection = New SqlConnection(SqlConn.ConnectionString)
        Dim myCommand As SqlCommand = New SqlCommand("Tsp_Forum_AddAdmin", myConnection)
        myCommand.CommandType = CommandType.StoredProcedure
        Dim parameterUserID As SqlParameter = New SqlParameter("@UserID", SqlDbType.Int, 4)
        Response.Write(ListBoxNonAdmins.SelectedItem.Value.ToString)
        ' parameterUserID.Value = CObj(ListBox1.SelectedValue)
        'myCommand.Parameters.Add(parameterUserID)
        'myConnection.Open()
        ' myCommand.ExecuteNonQuery()
        'myConnection.Close()
    End Sub
End Class


Ik snap het echt niet

[ Voor 9% gewijzigd door Verwijderd op 21-04-2005 15:41 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:35
In de page-load denk ik dat je best dit doet:

code:
1
2
3
4
5
if( ! this.IsPostBack )
{
    LoadBlaat();
    LoadMiep();
}


Want, nu gebeurt er dit:
je pagina wordt geladen, die 2 methods worden geladen, enzovoort.
Dan selecteer je een item en klik je op een knop -> de page - load wordt opnieuw uitgevoerd waardoor die 2 methods opnieuw uitgevoerd worden (bijgevolg ben je je geselecteerde item kwijt), en dan pas wordt de button_click uitgevoerd.
Door die IsPostBack == false conditie op te nemen, zorg je ervoor dat bij een postback die 2 methods in je page - load niet uitgevoerd worden, waardoor je je selectie niet verliest.

Zoek wel ff de juiste VB.NET syntax op, en beperk je in 't vervolg tot enkel de relevante code. Da's voor iedereen makkelijker.

[ Voor 12% gewijzigd door whoami op 21-04-2005 15:47 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
ja het is nu gefixed.

op zich best logisch wat er aan de hand was. bedankt!

[ Voor 7% gewijzigd door Verwijderd op 21-04-2005 15:55 ]

Pagina: 1