Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
N-nojmi
Člen
Avatar
N-nojmi:17.3.2015 13:53

ZDRAVÍM,

zasekl jsem se na určitém bodě, při programování aplikace v ASP.NETu.

Jde o to, že používám na vypsání dat z tabulky T_Dic v databázi Repeater, což není probém, ale problém je, že do tabulky, kterou vytvářím v Repeatru chci po poslední buňky vložit data z jiné tabulky v databázi, které jsou závislé na té první.....

Snad kód řekne víc:

<asp:Repeater ID="Repeater1" runat="server">

        <ItemTemplate>
                    <table>
                        <tr>
                            <td>Osobní číslo:</td>
                            <td><%# Eval("OsCislo") %></td>
                        </tr>
                        <tr>
                            <td>Řešitel:</td>
                            <td><%# Eval("Resitel") %></td>
                        </tr>
                        <tr>
                            <td>Založení záznamu:</td>
                            <td><%# Eval("DatumZalozeni") %></td>
                        </tr>
                        <tr>
                            <td>DIČ:</td>
                            <td><%# Eval("Dic") %></td>
                        </tr>
                        <tr>
                            <td>Poznámka:</td>
                            <td><%# Eval("Poznamka") %></td>
                        </tr>
                        <tr>
                            <td>Šetřené zdaňovací období:</td>
                            <td>
                                <asp:Label ID="labelobdobi" runat="server" Text=''></asp:Label>
                            </td>
                        </tr>
                    </table>

        </ItemTemplate>

    </asp:Repeater>
Editováno 17.3.2015 13:54
Odpovědět
17.3.2015 13:53
Není hloupých lidí, jen lidí co málo používají google...
Avatar
Odpovídá na N-nojmi
Michal Štěpánek:17.3.2015 14:26

Jestli jsem to dobře pochopil, chceš podle té buňky (OsCislo) vytahovat data z jiné tabulky. V první řadě musí být Bind, ne Eval a pak si jednoduše přidáš další SqlDataSource přímo do toho výpisu repeateru a vytáhneš z něj data.

Editováno 17.3.2015 14:26
Nahoru Odpovědět
17.3.2015 14:26
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
N-nojmi
Člen
Avatar
N-nojmi:17.3.2015 16:06

Ano, pochopil jsi to správně....

Co se týče Eval, potřebuju jenom zobrazit data uživateli.

Příklad:
Mám dvě tabulky, jedna je "Města" druhá "Ulice". Tabulky jsou propojené ID_Mesto. Přes repeater chci vypsat všechna města a u každého města všechny ulice daného města.

Je správná cesta, řešit to Repeatrem a nebo by se hodilo jiné řešení, ještě mě napadlo vložiz repeater do repeatru.

Mohl by jsi trochu rozvést přidání SqlDataSource do repeatru a jeho následný vytažení dat, který chci zobrazit?

Díky

Nahoru Odpovědět
17.3.2015 16:06
Není hloupých lidí, jen lidí co málo používají google...
Avatar
Odpovídá na N-nojmi
Michal Štěpánek:17.3.2015 16:16

Nějak jsem nepochopil, jak jsou tabulky propojené "ID_Mesto"? Nicméně máš SqlDataSource, kterým vytahuješ data Měst. To následně zobrazíš v repeateru. Někam do toho repeateru si uděláš hiddenfield s tím ID_Mesto, ale to musí být Bind, ne Eval a tetno fiddenfield pak dáš jako parametr do dalšího SqlDataSource, který umístíš dovnitř toho repeateru a budeš s ním vytahovat údaje o ulicích...
Kdyby ten hiddenfield byl taky jen Eval, nic by se ti nepředalo do toho dalšího SqlDataSource...

Nahoru Odpovědět
17.3.2015 16:16
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
N-nojmi
Člen
Avatar
Odpovídá na Michal Štěpánek
N-nojmi:17.3.2015 16:35

Bohužel, ale při zakládání dalšího SqlDataSource, nemohu najít HiddemField v kontrolkach ve WHERE.

<asp:HiddenField ID="HiddenFieldDic" runat="server" Value="<%# Bind("ID_Mesto") %>" />

u HiddemField se zobrazuje tohle upozornění:** A call to Bind must be assigned to a property of a control inside a template.**

Nahoru Odpovědět
17.3.2015 16:35
Není hloupých lidí, jen lidí co málo používají google...
Avatar
Odpovídá na N-nojmi
Michal Štěpánek:17.3.2015 17:22

Tak si to nejdříve celé (ten vnořený SqlDataSource) udělej mimo repeater a pak to jen vlož do repeateru

Nahoru Odpovědět
17.3.2015 17:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
N-nojmi
Člen
Avatar
Odpovídá na Michal Štěpánek
N-nojmi:18.3.2015 9:53

Mám tohle a nefachá to:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString='<%$ ConnectionStrings:zamest %>' SelectCommand="SELECT [ID_Dic] FROM [T_Dic]"></asp:SqlDataSource>

    <asp:HiddenField ID="HiddenField1" runat="server" Value="<%# Eval("ID_Dic") %>"/>

    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString='<%$ ConnectionStrings:zamest %>' SelectCommand="SELECT [Obdobi] FROM [T_Obdobi] WHERE ([ID_Dic] = @ID_Dic)">
        <SelectParameters>
            <asp:ControlParameter ControlID="HiddenField1" PropertyName="Value" Name="ID_Dic" Type="Int32"></asp:ControlParameter>
        </SelectParameters>
    </asp:SqlDataSource>

    <asp:Repeater ID="Repeater1" runat="server">

        <ItemTemplate>
            <div class="accordion">
                <div class="hlavni">
                    <%# Eval("Dic") %>
                </div>
                <div class="rozbalovany">
                    <table>
                        <tr>
                            <td>Osobní číslo:</td>
                            <td><%# Eval ("OsCislo") %></td>
                        </tr>
                        <tr>
                            <td>Řešitel:</td>
                            <td><%# Eval("Resitel") %> </td>
                        </tr>
                        <tr>
                            <td>Založení záznamu:</td>
                            <td><%# Eval("DatumZalozeni") %></td>
                        </tr>
                        <tr>
                            <td>DIČ (VAT ID):</td>
                            <td><%# Eval("Dic") %></td>
                        </tr>
                        <tr>
                            <td>Poznámka:</td>
                            <td><%# Eval("Poznamka") %></td>
                        </tr>
                        <tr>
                            <td>Šetřené zdaňovací období:</td>
                            <td>

                            <%# Eval("Obdobi") %>




                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </ItemTemplate>
    </asp:Repeater>

nějaká další rada?

Nahoru Odpovědět
18.3.2015 9:53
Není hloupých lidí, jen lidí co málo používají google...
Avatar
Odpovídá na N-nojmi
Michal Štěpánek:18.3.2015 11:13

Ten druhej SqlDataSource s tím hiddenfieldem musíš mít až v tom ItemTemplate a ten HiddenField, jak jsem psal výše, musí být Bind, protože Eval je jen jednosměrný

Editováno 18.3.2015 11:14
Nahoru Odpovědět
18.3.2015 11:13
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na N-nojmi
Michal Štěpánek:19.3.2015 18:28

Tak co? Běhá to?

Nahoru Odpovědět
19.3.2015 18:28
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.