Avatar billede JJK1988 Nybegynder
26. november 2014 - 10:47 Der er 1 kommentar og
1 løsning

<asp:DropDownList> + document.getElementById

Hej

Håber overskriften fortæller lidt om min problemstilling.

Kort fortalt:
Så vil jeg have det ID der høre til det valgte element i min dropdownliste;
som bliver fyldt via en metode som henter data fra en mySQl.

Spørgsmål:

Første problem stilling: Hvorfor kan jeg ikke hente værdien/teksten,
af en asp controller fra en separat js fil på et ID?



Hvis jeg smider følgende i en function I min aspx fil:

var txtEksternNo = $('#<%=txtEksternNo.ClientID%>').val();

Så finder den, den korrekte værdi.

Hvis jeg har den i min egentlig function i min seperate js fil,
så siger den at variablen er null / undefined.

-- Kan få det til at køre hvis jeg gør det på class, men jeg VIL på ID.

Anden problemstilling:
Hvorfor er det at jeg ikke kan hente id fra min dropdownlist?


Det er så uanset om det ligger i den seperate js fil eller i aspx filen.

var txtLocation = document.getElementById("<%= locationDDL.ClientID %>")
var option = txtLocation.option[txtLocation.selectedIndex].id;



asp.net koden

Første problem stilling
    <div>
        ID="Label5" runat="server" Text="Ekstern No: " CssClass="LabelNewSample"></asp:Label>
        name="txtEksternNo" runat="server" ID="txtEksternNo" class="testClass" placeholder=""></asp:TextBox>
    </div>



Anden problemstilling
    <div id="newInformation">
        <div>
              <h3>Informationer</h3>
              <asp:Label ID="Label8" runat="server" Text="Location: " CssClass="LabelNewSample"></asp:Label>
              <asp:DropDownList runat="server" ID="locationDDL"
                  CssClass="dropdownlist" AutoPostBack="false">    </asp:DropDownList>
        </div>
    </div> <%--END newInformation--%>

Så mit egentlig spørgsmål er følgende

Hvordan får jeg ID ud af min dropdownlist,
via function i et seperate document??


Er der ret overbevist om at jeg også smide ID ind i den når jeg populere den?

private void PopulatelocationDDL()
        {
            locationDDL.Items.Clear();

            var choseLocation = new ListItem();
            choseLocation.Text = "---Vælg Location---";
            locationDDL.Items.Add(choseLocation);

            foreach (BackBone.Model.Location l in CTR_Sample.GetAllLocations())
            {
                var item = new ListItem();
                item.Text = l.LocationName;
                item.Attributes.Add("ID", l.Location_ID + "");
                locationDDL.Items.Add(item);
            }
        }


Stil endelig spørgsmål.
Har søgt på google og har simpelthen ikke kunne finde en løsning.
- Da jeg smed min første variabel over i aspx siden, så fandt den, det der stod skrevet i <asp:textbox>,
    Men vil jo gerne have det i den seperate js fil.

- Kan slet ikke finde en fungerende løsning på,
hvordan jeg skal trække id ud af min dropdownliste
Avatar billede JJK1988 Nybegynder
26. november 2014 - 11:16 #1
Hvis jeg sætter

ClientIDMode="Static"

på min
<div>
    <asp:Label ID="Label5" runat="server" Text="Ekstern No: "
          CssClass="LabelNewSample"></asp:Label>
    <asp:TextBox name="txtEksternNo" runat="server" ID="txtEksternNo"
          class="testClass" ClientIDMode="Static"></asp:TextBox>
</div>

Så fanger den , det fra min separate js fil.

Nu mangler der så bare Anden problemstilling
Avatar billede JJK1988 Nybegynder
26. november 2014 - 11:27 #2
Så fandt jeg da også lige en løsning på den sidste problem stilling.

et enkelt lille ord ClientIDMode="Static" ; med ord henledes der til static.

var txtpatient_ID = document.getElementById("#patientDDL");
    var option = txtpatient_ID.option[txtpatient_ID.selectedIndex].id;

Dermed får jeg nu det jeg har behov for.

Håber det kan hjælpe andre i lign. situation.

Tak
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

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