سؤال

أحاول إنشاء نظام قائمة بسيط باستخدام أجهزة الراسبين. في النظام ، أرغب في استخدام تنسيق مختلف للعناصر الفرعية للفصل وأحاول استخدام ما إذا كان ذلك يتحقق من نتائج وفروع البيانات إذا كانت "فئات" ولكن عندما أقوم بتجميع الكود يقول:

اسم "حاوية" غير معلن.

على جميع البرامج التعليمية عبر الإنترنت و MSDN ، يُفترض فقط أن الحاوية. هل يمكن لأي شخص يستخدم البيانات أكثر مني شرح هذا؟

<asp:Repeater ID="TopNavRepeat" runat="server" DataSourceID="SqlDataSource1"  >
            <HeaderTemplate>
                <ul id="nav">
            </HeaderTemplate>
            <ItemTemplate>
                <li>
                    <asp:HiddenField ID="LinkIdField1" Value='<%# Eval("id") %>' runat="server" 
                            OnDataBinding="LinkIdField_ValueChanged" OnValueChanged="LinkIdField_ValueChanged"/>
                    <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("Url") %>'
                        ToolTip='<%# Eval("Description") %>'>
                    </asp:HyperLink>
                        <ul>
                        <!-- -->
                        <% If (CStr(DataBinder.Eval(Container.DataItem, "Title")) = "Classes")THEN %>
                        <asp:Repeater ID="ClassDownList" runat="server" DataSourceID="ClassDS">
                            <HeaderTemplate></HeaderTemplate>
                            <ItemTemplate>
                            <li><asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("name") %>' NavigateUrl='<%# "/Class/" & helpers.urlSafe(CStr(Eval("name"))) %>'
                            ToolTip='<%# CStr(Eval("name")) & " home page" %>' /></li>
                            </ItemTemplate>
                            <FooterTemplate></FooterTemplate>
                        </asp:Repeater>
                        <% Else %>
                        <asp:Repeater ID="DropDownList" runat="server" OnLoad="ChildDataList_Init">
                            <HeaderTemplate></HeaderTemplate>
                            <ItemTemplate>
                            <li><asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("Url") %>'
                            ToolTip='<%# Eval("Description") %>' /></li>
                            </ItemTemplate>
                            <FooterTemplate></FooterTemplate>
                        </asp:Repeater>
                        <%End If %>
                        </ul>
                </li>
            </ItemTemplate>
            <FooterTemplate>
                </ul>
            </FooterTemplate>
        </asp:Repeater>
هل كانت مفيدة؟

المحلول

أعتقد أنه لا يمكنك استخدام <% If %> داخل مكرر

فقط ضبط .Visible=False إلى واحد منهم على جانب الخادم

أو حاول (لست متأكدًا مما إذا كان هذا يعمل)

<asp:Repeater Visible='<%# (CStr(DataBinder.Eval(Container.DataItem, "Title")) = "Classes") %>'>

نصائح أخرى

أنا لست رجل VB ، ولكن هل هذا لأنك تقوم بمهمة ، بدلاً من المقارنة؟

<%# If (CStr(DataBinder.Eval(Container.DataItem, "Title")) = "Classes")THEN %>

لا ينبغي أن يكون:

<%# If (CStr(DataBinder.Eval(Container.DataItem, "Title")) == "Classes")THEN %>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top