Avatar billede tinaw25 Nybegynder
27. oktober 2013 - 15:43 Der er 15 kommentarer og
1 løsning

Hvorfor vil den ikke vise information i min repeater?

Hej

Jeg har en masse produkter som er vist i en datalist, og ved hvert produkt står der en info og når man trykker på den kommer der en popup box op og skal skrive nogle informationer på lige netop det produkt id, men popup boxen er tom? Hvad gør jeg forkert??

Jquery:

<script type="text/javascript">
      jQuery.fn.fadeToggle = function (speed, easing, callback) {
          return this.animate({ opacity: 'toggle' }, speed, easing, callback);
      };

      $(document).ready(function () {
          $('#contactFormContainer').hide();
          $('a.email, #contactFormContainer a.close').click(function () {
              $("#contactFormContainer").fadeToggle('slow');
          });
      });
        </script>


Hvor mine produkter vises:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [delikatesse]"></asp:SqlDataSource>
           
         
         
                <asp:DataList ID="VisDeli" runat="server" RepeatLayout="Table"
RepeatColumns="5" DataSourceID="SqlDataSource1" OnItemDataBound="VisDeli_ItemDataBound" CellSpacing="5" CssClass="tabel1" >
                   
                    <HeaderTemplate>
                        <p class="overskrift_bestil">Vælg tilbehør</p>
                    </HeaderTemplate>
                   
                    <ItemTemplate>
               
                          <td><asp:TextBox ID="TextBox_deli" runat="server" Width="15" Height="15"></asp:TextBox></td>
                          <td><p><%#Eval("deli_navn") %></p>
                              <td><p><a class="email" href="#emailpopup?deli_id=<%#Eval("deli_id") %>">info</a></p></td>
                             
                           
            </div>

Pop up box:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [delikatesse] WHERE ([deli_id] = @deli_id)">
                <SelectParameters>
                    <asp:QueryStringParameter Name="deli_id" QueryStringField="deli_id" Type="Int32" />
                </SelectParameters>
               
            </asp:SqlDataSource>
           
     
           
            <div id="contactFormContainer">
            <div id="contactForm">
                  <a class="close" href="#close" ><img src="Image/closebuttom.png" alt="Close"/></a>
                <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource2">
                    <ItemTemplate>
                    <div class="tekst_info">
                        <%#Eval("tekst") %>
                    </div>
                    <div class="tekst_pris">
                        <%#Eval("ml") %> ml  <%#Eval("pris") %> kr.
                    </div>
                    <div class="billede_info">
                        <img src="Images/upload/Thumbs/<%#Eval("billede") %>" />
                    </div>
                 
              </ItemTemplate>
                </asp:Repeater>




              </div>
          </div>
         

/Tina
Avatar billede keysersoze Guru
27. oktober 2013 - 16:03 #1
Så vidt jeg kan se på din kode laver du ikke et postback - dermed er din popup renderet ved page_load hvor du ingen querystring har og så er der ingen data at vise. Ret mig gerne hvis jeg tager fejl i den antagelse.

Du skal enten lave et postback, evt bare et callback hvis du arbejder med MSs AJAX, du kan lave en popup pr product og altså have loadet det hele på forhånd eller, den bedste mulighed, loade data asynkront med javascript (ajax).
Avatar billede tinaw25 Nybegynder
27. oktober 2013 - 16:18 #2
Kan jeg så lavet et postback på repeater??
Avatar billede keysersoze Guru
27. oktober 2013 - 17:06 #3
Du kan fx indsætte en linkbutton med commandargument sat - men det er som nævnt langt fra den mest optimale løsning.
Avatar billede tinaw25 Nybegynder
27. oktober 2013 - 18:18 #4
Kan man lave det på en anden måde??
Avatar billede keysersoze Guru
27. oktober 2013 - 18:39 #5
end med linkbutton eller hvad tænker du på?
Avatar billede tinaw25 Nybegynder
27. oktober 2013 - 21:14 #6
kan man ikke på nogen måde at når man trykker på den info at den laver et postback.

Eller kan man løse på en anden måde med en mouse over effekt??
Avatar billede keysersoze Guru
27. oktober 2013 - 22:01 #7
Et html a-tag eller en linkbutton vil visuelt være det samme. Du kan også sætte runat="server" på dit a-tag og derigennem få adgang til .NET-events og dermed et postback men så vil det måske være nemmere bare at sætte en egentlig URL i href-attributten hvis det bare er for at få en querystring sat.

En mouseover vil også være mulig men det vil igen kræve at du har loadet værdierne du vil vise på forhånd. Det kan evt løses ved at du sætter data-attributter på dit link og som du fører over i din popup ved mouseover (eller click).
Avatar billede tinaw25 Nybegynder
27. oktober 2013 - 22:12 #8
Kunne du måske give mig et hint hvad jeg skal skrive??


Denne her kalder popup box up
<a class="email" href="#emailpopup?deli_id=">info</a>

Er det sådan noget i den her stil??

<a class="email" href="#emailpopup?Request.QueryString["deli_id"]=">info</a>
Avatar billede keysersoze Guru
27. oktober 2013 - 22:22 #9
<a class="email" href="dinside.aspx?deli_id=<%#Eval("deli_id") %>">info</a>

Dette er dog ikke et postback men egentlig bare et sideskift - og så må du lade page_load styre om din popup skal vises eller ej ud fra om querystring indeholder noget eller ej. Men så vil du som sagt loade hele siden igen.
Avatar billede tinaw25 Nybegynder
27. oktober 2013 - 22:27 #10
#emailpopup jeg skal bruge denne her for at den åbner min popup box
Avatar billede keysersoze Guru
27. oktober 2013 - 22:38 #11
<a class="email" href="dinside.aspx?deli_id=<%#Eval("deli_id") %>#emailpopup">info</a>

Uden at have set dit javascript vil jeg dog tvivle på at det vil virke. Det er derfor du er nødt til at beslutte dig for om du vil have en javascript-løsning (hvor enten alle data er loadet på forhånd eller bliver loadet med ajax) eller om du vil have en .NET-løsning.
Avatar billede tinaw25 Nybegynder
28. oktober 2013 - 09:59 #12
Det kom faktisk til at virke, så smid et svar
Avatar billede keysersoze Guru
28. oktober 2013 - 17:14 #13
Med den sidste løsning? Spændende :)

Svar.
Avatar billede tinaw25 Nybegynder
30. oktober 2013 - 11:12 #14
Du skal lige gøre det rigtig med svar så jeg kan give dig point :-)
Avatar billede keysersoze Guru
30. oktober 2013 - 21:07 #15
tja - så dygtig er jeg åbenbart :)
Avatar billede tinaw25 Nybegynder
30. oktober 2013 - 22:30 #16
Hehe
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