Avatar billede sbi Nybegynder
30. september 2004 - 11:25 Der er 47 kommentarer og
1 løsning

Indsæt en <asp:radiobuttonlist i vb.net

Jeg har følgende problem:
Jeg vil gerne i VB kode lave en asp:radiobuttonlist/asp:checkboxlist

Pt. har jeg følgende kode hardcoded:
<asp:RadioButtonList id='rbList' runat='server'></asp:RadioButtonList>

Og så tilføjer jeg listepunkter i VB på følgende måde:
rbList.Items.Add(New ListItem("test", "T"))
osv.

MEN da jeg på bagrund af data vil lave ENTEN en CheckBoxList eller en RadioButtonList og ikke ved dette på forhånd har jeg brug for også at lave <asp:xxxList> tagget dynamisk. Kan jeg det?

På siden skal der listes op til 5 forskellige lister med et differencerende antal punkter, og alle lister skal jo afsluttes korrekt. (</asp:XXXXXlist>), derfor løber jeg for hurtigt tør for muligheder i en repeater og har brug for at kunne scripte hele siden...

Forslag er meget velkomne!

/SBI
Avatar billede sbi Nybegynder
30. september 2004 - 15:29 #1
Slet ingen kommentarer???

Jeg skal "bare" lave et 100% dynamisk <asp:radiobuttonlist> ;-)

/SBI
Avatar billede snepnet Nybegynder
30. september 2004 - 17:34 #2
jo... du skal nok få et bud.... jeg laver et eksemple her om lidt.
mvh
Avatar billede snepnet Nybegynder
30. september 2004 - 17:38 #3
der er for øvrigt ikke noget problem i at proppe det ind i en repeater du har liggende på siden i forvejen... er det det du helst vil ?

mvh
Avatar billede sbi Nybegynder
30. september 2004 - 17:55 #4
Ja,hvis de kan lade sig gøre...
Det lyder spændende.

/SBI
Avatar billede snepnet Nybegynder
30. september 2004 - 17:57 #5
kan du læse c# eller skal jeg få det herud i VB ?
Avatar billede snepnet Nybegynder
30. september 2004 - 17:58 #6
Vi kan lige tage et supersimpelt eksempel først :

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Namespace EXP2

Public Class RadioButtons
Inherits System.Web.UI.Page
  Protected Form1 As HtmlForm

  Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim rbList As RadioButtonList = New RadioButtonList ()
    rbList.Items.Add("hej")
    rbList.Items.Add("med")
    rbList.Items.Add("dig")
    Form1.Controls.Add(rbList)
  End Sub

  Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
    InitializeComponent()
    MyBase.OnInit(e)
  End Sub

  Private Sub InitializeComponent()
    AddHandler Me.Load, AddressOf Me.Page_Load
  End Sub
End Class
End Namespace
Avatar billede snepnet Nybegynder
30. september 2004 - 18:00 #7
Det kan jo ikke bruges til det helt store, men listen er i hvert fald oprettet dynamisk, og det er jo en start.
vi bygger bare videre indtil du har noget du kan bruge.

mvh
Avatar billede sbi Nybegynder
30. september 2004 - 18:14 #8
VB ville være at foretrække ;-)

/SBI
Avatar billede snepnet Nybegynder
30. september 2004 - 18:19 #9
tænkte jeg nok.... det er jo også det du fik :o)

der findes et online konverteringsværktøj her :
http://www.developerfusion.com/utilities/convertcsharptovb.aspx
det var den jeg selv brugte

kan du følge det lille eksempel jeg postede ?

mvh
Avatar billede sbi Nybegynder
30. september 2004 - 18:36 #10
Det er et fint eks.

Kunne du udvide eksemplet med et array af Navne på Radiobuttonlist's og CheckBoxlist og derefter et loop der laver flere af disse lister efter hinanden.

/SBI
Avatar billede snepnet Nybegynder
30. september 2004 - 18:41 #11
Jeps... du får et eksempel inden for rimelig tid ;o)
mvh
Avatar billede snepnet Nybegynder
30. september 2004 - 19:07 #12
Var det sådan noget i den her stil du mente ?
(tag dig ikke af alt pladderet med stringgymnastikken... jeg skulle bare lige simulere en eller anden ressource der skulle genereres lister over... håber ikke det forstyrrer for meget).

kan du bruge nedenstående til noget ?

mvh

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Namespace EXP2

Public Class RadioButtons
Inherits System.Web.UI.Page
  Protected Form1 As HtmlForm
  Private Const konfiguration As String = "CheckBoxList:hej,med,dig;RadioButtonList:hej,med,dig;CheckBoxList:hej,med,dig"

  Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim lister As String = konfiguration.Split(";"C)
    For Each liste As String In lister
      Dim resource As String = liste.Split(":"C)
      Dim type As String = resource(0)
      Dim names As String = resource(1).Split(","C)
      Select type
      Case "CheckBoxList"
        Form1.Controls.Add(GetRadioButtonList(names))
        ' break
      Case "RadioButtonList"
        Form1.Controls.Add(GetCheckBoxList(names))
        ' break
      Case Else
        Throw New ApplicationException ("Kunne ikke udlede typen")
      End Select
    Next
  End Sub

  Protected Function GetRadioButtonList(ByVal names() As String) As RadioButtonList
    Dim rblist As RadioButtonList = New RadioButtonList ()
    For Each name As String In names
      rblist.Items.Add(name)
    Next
    Return rblist
  End Function

  Protected Function GetCheckBoxList(ByVal names() As String) As CheckBoxList
    Dim cblist As CheckBoxList = New CheckBoxList ()
    For Each name As String In names
      cblist.Items.Add(name)
    Next
    Return cblist
  End Function

  Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
    InitializeComponent()
    MyBase.OnInit(e)
  End Sub

  Private Sub InitializeComponent()
    AddHandler Me.Load, AddressOf Me.Page_Load
  End Sub
End Class
End Namespace
Avatar billede sbi Nybegynder
30. september 2004 - 22:55 #13
Jeg syntes du har lavet et meget flot stykke arb. her!!
Jeg har nu siddet et par timer og prøvet at bikse det på plads med den datakilde jeg har, men jeg kan ikke få det til at spille.

Jeg hælder gerne nogle flere point på hvis du kan give et lille håndsrækning mere...

Min datakilde er en datatable der ser ud som følger:
type  listetype  name    default
2    0          test1  0
1    0          test1_1 0
1    0          test1_2 1
2    1          test2  0
1    1          test2_1 1
1    1          test2_2 0
osv.

Type fortæller om det er en gruppe/lister eller en item (2=liste og 1=item)
Listetype fortæller om det er checkbox eller radio (0 = radio)
Name giver sig selv ;-)
default angiver hvilket punkt på listen der skal være valgt initielt

Giver det mening? Det håber jeg...
Du får 200 xtra point for denne...

/SBI
Avatar billede snepnet Nybegynder
30. september 2004 - 23:03 #14
jeg kigger lige på det og vender tilbage.

(der er vist en regel om at 200 point er max, så du skal ikke tænke på at finde flere point frem :o)

mvh
Avatar billede snepnet Nybegynder
30. september 2004 - 23:21 #15
Datagrundlaget er lidt specielt synes jeg... kan jeg lave det om - eller er det vigtigt at det bliver ved med at være som angivet ?
Avatar billede sbi Nybegynder
30. september 2004 - 23:37 #16
De data jeg får leveret er fra et ERP system, jeg har ikke indflydelse på data.

/SBI
Avatar billede snepnet Nybegynder
30. september 2004 - 23:44 #17
ok
Avatar billede snepnet Nybegynder
01. oktober 2004 - 00:01 #18
sorry.... sidder også og laver lidt andre småting...
du kan lige få noget værre gnidder her... det virker muligvis :)
(men det er da tro imod datakilden... men så skal den også være tro mod det du skrev ;o)

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace EXP2
{
    public class RadioButtons : System.Web.UI.Page
    {
        protected HtmlForm Form1;

        // en dummyressource
        private const string konfiguration = "CheckBoxList:hej,med,dig;RadioButtonList:hej,med,dig;CheckBoxList:hej,med,dig";

        private void Page_Load(object sender, System.EventArgs e)
        {
            // InserListsModelOne();
            InsertListsModelTwo();
        }

        protected void InsertListsModelTwo()
        {
            DataTable dt = CreateDataSource();           
            RadioButtonList rbliste = null;       
            CheckBoxList cbliste = null;       
           
            int type, lasttype = 0, listetype = 0, lastlistetype = 0;

            foreach(DataRow dr in dt.Rows)
            {
                type = (int)dr["type"];               

                if(type == 2) // vi skal igang med en gruppe
                {   
                    listetype = (int)dr["listetype"];

                    // hvis der tidligere har været et item
                    if(lasttype == 1)
                    {
                        if(lastlistetype == 0)
                        {
                            Form1.Controls.Add(rbliste);
                            rbliste = null;
                        }
                        else if(lastlistetype == 1)
                        {
                            Form1.Controls.Add(cbliste);
                            cbliste = null;
                        }
                    }
                                       
                    if(listetype == 0)
                    {
                        rbliste = new RadioButtonList();
                        rbliste.Items.Add(GetListItem(dr["name"].ToString()));                       
                    }
                    else if(listetype == 1)
                    {
                        cbliste = new CheckBoxList();       
                        cbliste.Items.Add(GetListItem(dr["name"].ToString()));
                    }
                   
                    lastlistetype = listetype;                   
                }
               
                else if(type == 1)
                {
                    if(lastlistetype == 0)
                        rbliste.Items.Add(GetListItem(dr["name"].ToString()));
                    else if(lastlistetype == 1)
                        cbliste.Items.Add(GetListItem(dr["name"].ToString()));
                }               

                lasttype = type;
            }

            // opsamling
            if(rbliste != null)
                Form1.Controls.Add(rbliste);
            if(cbliste != null)
                Form1.Controls.Add(cbliste);
        }

        protected ListItem GetListItem(string name)
        {
            return new ListItem(name);
        }

        protected void InserListsModelOne()
        {
            string[] lister = konfiguration.Split(';');           
           
            foreach(string liste in lister)
            {               
                string[] resource = liste.Split(':');
                string type = resource[0];
                string[] names = resource[1].Split(',');

                switch(type)
                {
                    case "CheckBoxList" :
                        Form1.Controls.Add(GetRadioButtonList(names));
                        break;
                    case "RadioButtonList" :
                        Form1.Controls.Add(GetCheckBoxList(names));
                        break;
                    default :
                        throw new ApplicationException("Kunne ikke udlede typen");

                }
            }
        }

        protected RadioButtonList GetRadioButtonList(string[] names)
        {
            RadioButtonList rblist = new RadioButtonList();
            foreach(string name in names)
            {
                rblist.Items.Add(GetListItem(name));
            }   
            return rblist;
        }

        protected CheckBoxList GetCheckBoxList(string[] names)
        {
            CheckBoxList cblist = new CheckBoxList();
            foreach(string name in names)
            {
                cblist.Items.Add(GetListItem(name));
            }
            return cblist;
        }       

        protected DataTable CreateDataSource()
        {
            // først tabellen
            DataTable dt = new DataTable("dummydata");
            dt.Columns.Add("type", typeof(int));
            dt.Columns.Add("listetype", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("default", typeof(int));
           
            // så lidt dummydata
            DataRow newRow = dt.NewRow();
           
            // 1
            newRow["type"] = 2;
            newRow["listetype"] = 0;
            newRow["name"] = "test1";
            newRow["default"] = 0;
            dt.Rows.Add(newRow);

            // 2
            newRow = dt.NewRow();
            newRow["type"] = 1;
            newRow["listetype"] = 0;
            newRow["name"] = "test1_1";
            newRow["default"] = 0;
            dt.Rows.Add(newRow);

            // 3
            newRow = dt.NewRow();
            newRow["type"] = 1;
            newRow["listetype"] = 0;
            newRow["name"] = "test1_2";
            newRow["default"] = 0;
            dt.Rows.Add(newRow);

            // 4
            newRow = dt.NewRow();
            newRow["type"] = 2;
            newRow["listetype"] = 1;
            newRow["name"] = "test2";
            newRow["default"] = 0;
            dt.Rows.Add(newRow);

            // 5
            newRow = dt.NewRow();
            newRow["type"] = 1;
            newRow["listetype"] = 1;
            newRow["name"] = "test2_1";
            newRow["default"] = 0;
            dt.Rows.Add(newRow);

            // 6
            newRow = dt.NewRow();
            newRow["type"] = 1;
            newRow["listetype"] = 1;
            newRow["name"] = "test2_2";
            newRow["default"] = 0;
            dt.Rows.Add(newRow);

            return dt;
        }

        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }
       
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
        }
    }
}
Avatar billede snepnet Nybegynder
01. oktober 2004 - 00:02 #19
(det er lidt klamt hvis jeg selv skal sige det... men begge liste har basen i ListControl, som ikke implementerer .Items, og som for øvrigt er abstrakt - og det ødelægger lidt muligheden for at slippe for det listespecifikke kode.
Avatar billede snepnet Nybegynder
01. oktober 2004 - 00:04 #20
Hov.... prøver lige en oversætter mere :o)

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Namespace EXP2

Public Class RadioButtons
Inherits System.Web.UI.Page
  Protected Form1 As HtmlForm
  Private Const konfiguration As String = "CheckBoxList:hej,med,dig;RadioButtonList:hej,med,dig;CheckBoxList:hej,med,dig"

  Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    InsertListsModelTwo()
  End Sub

  Protected Sub InsertListsModelTwo()
    Dim dt As DataTable = CreateDataSource()
    Dim rbliste As RadioButtonList = Nothing
    Dim cbliste As CheckBoxList = Nothing
    Dim type As Integer
    Dim lasttype As Integer = 0
    Dim listetype As Integer = 0
    Dim lastlistetype As Integer = 0
    For Each dr As DataRow In dt.Rows
      type = CType(dr("type"), Integer)
      If type = 2 Then
        listetype = CType(dr("listetype"), Integer)
        If lasttype = 1 Then
          If lastlistetype = 0 Then
            Form1.Controls.Add(rbliste)
            rbliste = Nothing
          Else
            If lastlistetype = 1 Then
              Form1.Controls.Add(cbliste)
              cbliste = Nothing
            End If
          End If
        End If
        If listetype = 0 Then
          rbliste = New RadioButtonList ()
          rbliste.Items.Add(GetListItem(dr("name").ToString()))
        Else
          If listetype = 1 Then
            cbliste = New CheckBoxList ()
            cbliste.Items.Add(GetListItem(dr("name").ToString()))
          End If
        End If
        lastlistetype = listetype
      Else
        If type = 1 Then
          If lastlistetype = 0 Then
            rbliste.Items.Add(GetListItem(dr("name").ToString()))
          Else
            If lastlistetype = 1 Then
              cbliste.Items.Add(GetListItem(dr("name").ToString()))
            End If
          End If
        End If
      End If
      lasttype = type
    Next
    If Not (rbliste Is Nothing) Then
      Form1.Controls.Add(rbliste)
    End If
    If Not (cbliste Is Nothing) Then
      Form1.Controls.Add(cbliste)
    End If
  End Sub

  Protected Function GetListItem(ByVal name As String) As ListItem
    Return New ListItem (name)
  End Function

  Protected Sub InserListsModelOne()
    Dim lister As String = konfiguration.Split(";"C)
    For Each liste As String In lister
      Dim resource As String = liste.Split(":"C)
      Dim type As String = resource(0)
      Dim names As String = resource(1).Split(","C)
      Select type
      Case "CheckBoxList"
        Form1.Controls.Add(GetRadioButtonList(names))
        ' break
      Case "RadioButtonList"
        Form1.Controls.Add(GetCheckBoxList(names))
        ' break
      Case Else
        Throw New ApplicationException ("Kunne ikke udlede typen")
      End Select
    Next
  End Sub

  Protected Function GetRadioButtonList(ByVal names() As String) As RadioButtonList
    Dim rblist As RadioButtonList = New RadioButtonList ()
    For Each name As String In names
      rblist.Items.Add(GetListItem(name))
    Next
    Return rblist
  End Function

  Protected Function GetCheckBoxList(ByVal names() As String) As CheckBoxList
    Dim cblist As CheckBoxList = New CheckBoxList ()
    For Each name As String In names
      cblist.Items.Add(GetListItem(name))
    Next
    Return cblist
  End Function

  Protected Function CreateDataSource() As DataTable
    Dim dt As DataTable = New DataTable ("dummydata")
    dt.Columns.Add("type", GetType(Integer))
    dt.Columns.Add("listetype", GetType(Integer))
    dt.Columns.Add("name", GetType(String))
    dt.Columns.Add("default", GetType(Integer))
    Dim newRow As DataRow = dt.NewRow()
    newRow("type") = 2
    newRow("listetype") = 0
    newRow("name") = "test1"
    newRow("default") = 0
    dt.Rows.Add(newRow)
    newRow = dt.NewRow()
    newRow("type") = 1
    newRow("listetype") = 0
    newRow("name") = "test1_1"
    newRow("default") = 0
    dt.Rows.Add(newRow)
    newRow = dt.NewRow()
    newRow("type") = 1
    newRow("listetype") = 0
    newRow("name") = "test1_2"
    newRow("default") = 0
    dt.Rows.Add(newRow)
    newRow = dt.NewRow()
    newRow("type") = 2
    newRow("listetype") = 1
    newRow("name") = "test2"
    newRow("default") = 0
    dt.Rows.Add(newRow)
    newRow = dt.NewRow()
    newRow("type") = 1
    newRow("listetype") = 1
    newRow("name") = "test2_1"
    newRow("default") = 0
    dt.Rows.Add(newRow)
    newRow = dt.NewRow()
    newRow("type") = 1
    newRow("listetype") = 1
    newRow("name") = "test2_2"
    newRow("default") = 0
    dt.Rows.Add(newRow)
    Return dt
  End Function

  Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
    InitializeComponent()
    MyBase.OnInit(e)
  End Sub

  Private Sub InitializeComponent()
    AddHandler Me.Load, AddressOf Me.Page_Load
  End Sub
End Class
End Namespace
Avatar billede sbi Nybegynder
01. oktober 2004 - 09:19 #21
Glæder mig til at prøve den..

Kikker på her til formiddag.

/SBI
Avatar billede snepnet Nybegynder
01. oktober 2004 - 09:20 #22
håber du får det til at funge :o)
Avatar billede sbi Nybegynder
01. oktober 2004 - 15:54 #23
Det virker bare nu!
Jeg har modificeret lidt, og er kommet en mil eller to i min forståelse. :-)

Kan du ikke lave et svar så jeg kan give point.

Ved du forresten om jeg kan lave sådan en dynamisk checkbox ReadOnly?

/SBI
Avatar billede snepnet Nybegynder
01. oktober 2004 - 16:08 #24
hmm.... det kunne godt tænkes at være lidt kringlet tror jeg... Jeg kigger lige på det.
Avatar billede snepnet Nybegynder
01. oktober 2004 - 16:25 #25
jeg tror ikke du kan gøre det serverside, men clientside skulle du have en mulighed... Se f.eks. her :
http://www.codeproject.com/aspnet/disableListItems.asp
Avatar billede snepnet Nybegynder
01. oktober 2004 - 16:25 #26
og et svar skal du jo også have :o)
Avatar billede sbi Nybegynder
04. oktober 2004 - 10:56 #27
Alt virker som det skal.

Har blot et lille problem med at fange værdierne fra checkboksene. Jeg har prøvet med en Request.Form og RadioButton værdierne kommer fint ind.

Jeg tildeler attributer og værdier på følgende måde:

    Protected Function GetListItem(ByVal name As String, ByVal stdDefault As Integer, ByVal ItemQuantity_per As Integer, ByVal description As String, Optional ByVal locked As Integer = 0) As ListItem
        Dim x As New ListItem(name)
        x.Selected = (1 = stdDefault)
        x.Text = description
        x.Value = ItemQuantity_per
        Return x
    End Function
Avatar billede snepnet Nybegynder
04. oktober 2004 - 13:30 #28
Hej igen :o)

Kan du prøve at vise lidt omkring hvordan du kalder den metode du har vist, og i hvilken situation du gør det ?

mvh
Avatar billede sbi Nybegynder
04. oktober 2004 - 13:34 #29
Det er bare en udbygning af den du har lavet ovenfor. Det eneste ekstra jeg har lavet er at putte lidt flere parametre på:

Value
Beskrivende tekst
Selected

/SBI
Avatar billede snepnet Nybegynder
04. oktober 2004 - 13:59 #30
arh :o) - sorry.

Nu har vi jo klasket det hele ind i Form1-kontrollen, så du kan også finde dem der igen.

har du angivet f.eks. ID="testid" på en kontrol som du har smidt ind på Fomr1 - burde du kunne finde den igen med Form1.FindControl("<kontrolid>");

men du kan og traversere igennem kontroltræet med
foreach(Control c in Form1.Controls)
{
  if(c is CheckBoxList)
  {
      CheckBoxList cbl = (CheckBoxList)c;
  }
}

(du får lige linket til konverteringsværktøjet igen hvis nødvendigt : http://www.developerfusion.com/utilities/convertcsharptovb.aspx)

(jeg har ikke så meget tid lige nu, men jeg er på banen igen i aften :o).

mvh
Avatar billede sbi Nybegynder
04. oktober 2004 - 14:35 #31
Det er helt fint!
Det du viser her er godt, så langt så godt. Som jeg ser det kan jeg nu identificere og udvælge de rigtige controller (Checkboxlist), så mangler jeg bare at kunne loope gennem elementerne i controllen og udvælge dem der er Selected.

Jeg har oprettet et nyt spg. til denne fortsættelse. Hvis du svarer videre på den kan jeg give nogle flere point. ;-)

http://www.eksperten.dk/spm/546657
Avatar billede sbi Nybegynder
07. oktober 2004 - 12:17 #32
Hej igen

Endnu et lille sp. ;O)

På Radiobuttonlist eller Checkboxlist er det muligt at tilføje en OnSelectedIndexChanged attribut men jeg kan ikke umiddelbart komme til at tilføje den når jeg opretter listerne dynamisk??

/SBI
Avatar billede snepnet Nybegynder
07. oktober 2004 - 12:20 #33
du kan også gøre det i koden sådan her :

// en liste
CheckBoxList cbl = new CheckBoxList();
// abbonner på eventet
cbl.SelectedIndexChanged += new EventHandler(cbl_SelectedIndexChanged);

// og handlere bliver så noget i denne stil :
private void cbl_SelectedIndexChanged(object sender, EventArgs e)
{
  // her kan du så gøre noget ved det :o)
}

mvh
Avatar billede snepnet Nybegynder
07. oktober 2004 - 12:27 #34
Æhh... på VB'sk skal du nok bare oprette en metode som denne her istedet :

Private Sub cbl_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbl.SelectedIndexChanged
End Sub

og så skal du nok angive når du opretter den, at den skal være withevents sådan her :
Protected WithEvents cbl As System.Web.UI.WebControls.CheckBoxList

Sorry... er ikke nogen ørn til VB.

mvh
Avatar billede sbi Nybegynder
07. oktober 2004 - 12:30 #35
Det vil den ikke, den siger at SelectedIndexChanged ikke er en member af Checkboxlist.

øvøv

/SBI
Avatar billede sbi Nybegynder
07. oktober 2004 - 12:31 #36
Sorry så ikke din sidste kommentar...
Avatar billede snepnet Nybegynder
07. oktober 2004 - 12:32 #37
Lyder underligt... det her virker da fint :
(var det mit C# eksempel du prøvede eller ?)

Public Class WebForm1
    Inherits System.Web.UI.Page

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents CheckBoxList1 As System.Web.UI.WebControls.CheckBoxList

    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        InitializeComponent()
    End Sub

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

    Private Sub CheckBoxList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBoxList1.SelectedIndexChanged

    End Sub
End Class
Avatar billede snepnet Nybegynder
07. oktober 2004 - 12:33 #38
lolz :oD - jeg så så heller ikke din.... Så må den jo stå 1-1 :o)
Avatar billede sbi Nybegynder
07. oktober 2004 - 14:45 #39
øv øv
Jeg kan ikke få den til at virke :-(
Den fejler ikke, men gør heller ingen verdens ting.

Jeg har lavet følgende:

Protected WithEvents cbliste As CheckBoxList
cbliste = New CheckBoxList()
Private Sub cbliste_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbliste.SelectedIndexChanged
        Label1.Text = "test"
End Sub
Avatar billede snepnet Nybegynder
07. oktober 2004 - 15:41 #40
Arh... man skal lave en lille besværgelse til (jeg er som sagt sinke til VB).

du kan lige se et eksemple her :

Public Class WebForm1
    Inherits System.Web.UI.Page

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private designerPlaceholderDeclaration As System.Object   

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        InitializeComponent()
    End Sub

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim CheckBoxList1 As New System.Web.UI.WebControls.CheckBoxList
        CheckBoxList1.Items.Add("hej")       
        CheckBoxList1.Items.Add("med")
        CheckBoxList1.Items.Add("dig")
        AddHandler CheckBoxList1.SelectedIndexChanged, AddressOf CheckBoxList1_SelectedIndexChanged1
        Me.Controls(1).Controls.Add(CheckBoxList1)
        'og lige en knap så vi kan lave et postback
        Me.Controls(1).Controls.Add(New Button)
    End Sub

    Private Sub CheckBoxList1_SelectedIndexChanged1(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Response.Write("test")
    End Sub
End Class

Det virker hvadenten autopostback er true eller false på CheckBoxList'en.

Håber du får det til at snurre :o)

mvh
Avatar billede sbi Nybegynder
08. oktober 2004 - 16:48 #41
Jeg kan bare ikke få det til at virke, snøft :-(
(Måske er jeg bare en kode amøbe)

/SBI
Avatar billede snepnet Nybegynder
08. oktober 2004 - 16:51 #42
kan du ikke det eksempel jeg har sendt til at virke ?
(altså det sidste)
det virker fint her ... hvad er det ved det der ikke virker hos dig ?
Avatar billede sbi Nybegynder
08. oktober 2004 - 17:55 #43
Den trigger ikke funktionen når jeg checker en checbox on/off

/SBI
Avatar billede snepnet Nybegynder
08. oktober 2004 - 18:07 #44
Det giver slet ikke nogen mening... jeg har det kørende her helt uden problemer... der må være noget vi miskommunikerer over ?!?
er det du savner at der sker et postback med det samme man klikker i en af checkboksene - eller kan du ikke få handleren kaldt på nogen som helst måde ?

//
autopostback = true kan du sætte på flere typer af kontroller, ved en checkbox bevirker det at der laves postback når der klikkes i boksen, og ved en tekstboks kan det ske når man ændrer i den og forlader feltet.

hvis du har autopostback=false skal der så være noget andet på siden der sørger for at der sker et postback (derfor knappen i eksemplet).

hvad enten postback'et eksekveres ved at der klikkes i en checkboxlist, hvor autopostback=true, eller ved en hvilken som helst anden kontrol (en knap, eller andre kontroller der kan generere et postback) - skal handleres køres på serveren.

håber vi finder ud af det :o)
mvh
Avatar billede sbi Nybegynder
08. oktober 2004 - 19:59 #45
Okay

Så tror jeg brikkerne er ved at falde på plads. Jeg satte Autopostback=true også virkede ovenstående.

Tak igen!

/SBI
Avatar billede snepnet Nybegynder
08. oktober 2004 - 20:00 #46
velbekomme :o)
Avatar billede sbi Nybegynder
08. oktober 2004 - 22:11 #47
Jeg har oprettet et spg. mere hvis du har lyst må du gerne kikke med...
http://www.eksperten.dk/spm/548401
Avatar billede sbi Nybegynder
29. oktober 2004 - 10:44 #48
Jeg har et problem/udfordring mere relateret til ovenstående, ved du (Snepnet) noget om det?
http://www.eksperten.dk/spm/555731
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester