Avatar billede ungermand Nybegynder
13. august 2004 - 10:31 Der er 21 kommentarer og
1 løsning

Ændre indhold i dropdownlist ved forskellige tjek af radiobutton

Jeg har lavet en radiobuttonlist med to elementer. Alt efter hvilket element der bliver tjekket af, skal indholdet i en Dropdownliste ændre sig.

Hvordan gør jeg det?
Avatar billede basementjack Nybegynder
13. august 2004 - 10:39 #1
Sæt autopostback på dine radiobuttons.. og i din page_load tester du for om der er blevet valgt en af dem og hvilken det er.. og så indsættes værdierne i dropdownlisten derud fra..
Avatar billede ungermand Nybegynder
13. august 2004 - 10:44 #2
Tak for sbaret. Jeg er ret ny i det (og lidt sløv, heh), så kunne du evt skære det ud i pap for mig, hvordan jeg tester i page_load :D

Tak.
Avatar billede basementjack Nybegynder
13. august 2004 - 10:51 #3
[VB]
Sub Page_Load
If radiobutton1.selected = true Then
  dropdownlist1.add("noget")
ElseIf radiobutton2.selected = true Then
  dropdownlist1.add("noget andet")
Else
  'None selected
End If
End Sub
[C#] - Hver gætter jeg bare
void Page_Load()
{
If radiobutton1.Selected = True Then
  dropdownlist1.Add("noget")
ElseIf radiobutton2.Selected = True Then
  dropdownlist1.Add("noget andet")
Else
  //None selected
End If
}

Min stærke side er altså VB.. Håber du eller en anden oversætter mit VB korrekt.. :)
Avatar billede ungermand Nybegynder
13. august 2004 - 10:54 #4
okay. Jeg prøver. Tak for hjælpen.

hvordan giver man egentlig point?
Avatar billede basementjack Nybegynder
13. august 2004 - 10:55 #5
Først lægger jeg et svar som dette.. Og så trykker du på accepter.. Men lad os nu se om det C# virker.. :)
Avatar billede ungermand Nybegynder
13. august 2004 - 10:59 #6
ok.
Avatar billede basementjack Nybegynder
13. august 2004 - 10:59 #7
Hmm.. Det er muligt at man skal teste på det sådan her:
[VB]
Sub Page_Load
If radiobutton1.Checked= true Then
  dropdownlist1.add("noget")
ElseIf radiobutton2.Checked = true Then
  dropdownlist1.add("noget andet")
Else
  'None selected
End If
End Sub
Avatar billede ungermand Nybegynder
13. august 2004 - 11:38 #8
Det virkede ikke helt det du skrev, men jeg forsøgte noget andet...

private void Page_Load(object sender, System.EventArgs e)
{
  // Put user code to initialize the page here

  if (!IsPostBack)
  {
    string[] test1 = {"test1"};

    string[] test = {"test"};

    if (radioEnv.SelectedValue.Equals(QA) = true)
      {
        branchList.DataSource = test1;
        branchList.DataBind();
      }
    else
          {
        branchList.DataSource = test;
        branchList.DataBind();
      }
  }
}

Min dropdownliste hedder branchList

Håber det er noget du kan hjælpe lidt med :)
Avatar billede ungermand Nybegynder
13. august 2004 - 11:43 #9
ups. glemte at skrive hilken fejl den giver,,,

det er ordet QA (som er navnet på radiobutton nummer 1. Det navn kan compileren ikke lide. Den skriver: The name 'QA' does not exist in the class or namespace 'FileLister.WebForm1'

Jeg ved ikke hvad jeg ellers skal kalde den... ser det andet rigtigt ud?
Avatar billede basementjack Nybegynder
13. august 2004 - 11:50 #10
private void Page_Load(object sender, System.EventArgs e)
{
  if (!IsPostBack)
  {
    if (radioEnv.SelectedValue.Equals(QA) = true)
      {
        branchList.Items.Add("test1")
        branchList.Items.Add("mon")
        branchList.Items.Add("det")
        branchList.Items.Add("virker")
        //branchList.DataBind();
      }
    else
          {
        branchList.Items.Add("test2")
        branchList.Items.Add("mon")
        branchList.Items.Add("det")
        branchList.Items.Add("virker")
        //branchList.DataBind();
      }
  }
}

Jeg ved ikke lige om dataBind() er nødvendigt med C#
Avatar billede basementjack Nybegynder
13. august 2004 - 11:56 #11
Hmm.. Der skal selvfølgelig være ; bag alle de branchList.Items.Add("...")
Avatar billede ungermand Nybegynder
13. august 2004 - 12:55 #12
Okay, nu er jeg der næsten...

Det her virker:

private void Page_Load(object sender, System.EventArgs e)
{
  if (!IsPostBack)
  {
    if (radioEnv.SelectedValue.Equals("QA") == true)
      {
        branchList.Items.Add("test1")
        branchList.Items.Add("mon")
        branchList.Items.Add("det")
        branchList.Items.Add("virker")
        //branchList.DataBind();
      }
    else if (radioEnv.SelectedValue.Equals("LIVE") == true)
          {
        branchList.Items.Add("test2")
        branchList.Items.Add("mon")
        branchList.Items.Add("det")
        branchList.Items.Add("virker")
        //branchList.DataBind();
      }
  }
}

Bortset fra, at listen ikke reagerer på om man trykker på radioknapperne. Det er ganske simpelt den handling der står først i koden, der bliver vist i dropdownlisten, hvad enten man trykker på QA eller på LIVE...

Men det er close :)
Avatar billede ungermand Nybegynder
13. august 2004 - 12:57 #13
nej undskyld. Det er ikke den kode der virker,,,
det er denne:

if (!IsPostBack)
  {
    string[] test1 = {"test1"};

    string[] test = {"test"};

    if (radioEnv.SelectedValue.Equals("QA") == true)
      {
        branchList.DataSource = test1;
        branchList.DataBind();
      }
    else if (radioEnv.SelectedValue.Equals("LIVE") == true)
          {
        branchList.DataSource == test;
        branchList.DataBind();
      }
  }
Avatar billede basementjack Nybegynder
13. august 2004 - 13:07 #14
Når du siger navn.. Mener du så id?..
Avatar billede basementjack Nybegynder
13. august 2004 - 13:09 #15
Hvis der skal reageres når der trykkes på radiobutton, skal den se sådan ud:
<asp:RadioButton id="RadioButton1" runat="server" AutoPostBack="True"></asp:RadioButton>
Avatar billede ungermand Nybegynder
13. august 2004 - 13:16 #16
I html filen eller?

der ser min sådan her ud:

<asp:ListItem Value="QA" Selected="True">QA</asp:ListItem>
<asp:ListItem Value="LIVE">LIVE</asp:ListItem>
</asp:radiobuttonlist><asp:label id="environment" style="Z-INDEX: 104; LEFT: 32px; POSITION: absolute; TOP: 48px"

hvad mener du med navn?
Avatar billede basementjack Nybegynder
13. august 2004 - 13:20 #17
Tilføj AutoPostBack

            <asp:RadioButtonList id="RadioButtonList1" runat="server" AutoPostBack="True">
                <asp:ListItem Value="V&#230;rdi1">V&#230;rdi1</asp:ListItem>
                <asp:ListItem Value="V&#230;rdi2">V&#230;rdi2</asp:ListItem>
            </asp:RadioButtonList>
Avatar billede basementjack Nybegynder
13. august 2004 - 13:24 #18
okay har en aspx i wwebmatrix.. og den virker... Her:

__________________________________________________________
<%@ Page Language="C#" Debug="True" %>
<script runat="server">

    private void Page_Load(object sender, System.EventArgs e)
    {
      if (IsPostBack)
      {
        {
        if (rbl1.SelectedItem.Value == "1")
          {
            branchList.Items.Add("test1");
            branchList.Items.Add("mon");
            branchList.Items.Add("det");
            branchList.Items.Add("virker");
            branchList.DataBind();
          }
        else if (rbl1.SelectedItem.Value == "2")
              {
            branchList.Items.Add("test2");
            branchList.Items.Add("mon");
            branchList.Items.Add("det");
            branchList.Items.Add("virker");
            branchList.DataBind();
          }
      }
    }
}
</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <p>
            <asp:RadioButtonList id="rbl1" runat="server" AutoPostBack="True">
                <asp:ListItem Value="1">1</asp:ListItem>
                <asp:ListItem Value="2">2</asp:ListItem>
            </asp:RadioButtonList>
        </p>
        <p>
            <asp:DropDownList id="branchList" runat="server"></asp:DropDownList>
        </p>
        <!-- Insert content here -->
    </form>
</body>
</html>
Avatar billede basementjack Nybegynder
13. august 2004 - 13:37 #19
Denne her var vist bedre.. DataBind() er ikke nødvendigt og så fjerner denne også tidligere Items inden den ligger nye ind..
__________________________________________
<%@ Page Language="C#" Debug="True" %>
<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
        {
            if (IsPostBack)
            {
                branchList.Items.Clear();
              if (rbl1.SelectedItem.Value == "1")
                {
                  branchList.Items.Add("test1");
                  branchList.Items.Add("mon");
                  branchList.Items.Add("det");
                  branchList.Items.Add("virker");
                }
              else if (rbl1.SelectedItem.Value == "2")
                    {
                  branchList.Items.Add("test2");
                  branchList.Items.Add("mon");
                  branchList.Items.Add("det");
                  branchList.Items.Add("virker");
                    }
            }
          }
</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <p>
            <asp:RadioButtonList id="rbl1" runat="server" AutoPostBack="True">
                <asp:ListItem Value="1">1</asp:ListItem>
                <asp:ListItem Value="2">2</asp:ListItem>
            </asp:RadioButtonList>
        </p>
        <p>
            <asp:DropDownList id="branchList" runat="server"></asp:DropDownList>
        </p>
        <!-- Insert content here -->
    </form>
</body>
</html>
Avatar billede basementjack Nybegynder
13. august 2004 - 17:20 #20
Får du det til at virke?..
Avatar billede ungermand Nybegynder
16. august 2004 - 08:14 #21
Ja, jeg har fået det til at virke nu... Har dog fundet ud af, at det var overflødigt for programmet HE :)

Men vil du lige have point?
Avatar billede basementjack Nybegynder
16. august 2004 - 10:29 #22
Tja, hvis du synes at jeg har svaret rigtigt på dit spm..
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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