簡體   English   中英

ASP.NET中的可折疊中繼器

[英]Collapsable repeater in ASP.NET

我有一個中繼器,當前顯示這些縣中的縣和鄉鎮列表。 除了具有不同的RowFormat屬性外,在轉發器中對縣記錄和鄉鎮記錄的處理也相同。 每個記錄還具有唯一的ID和要顯示的單位(無論是鄉鎮還是縣)。 還有一列供鄉鎮參考其上級縣。 我利用中繼器上的AlternatingItemTemplate選項在每個鄉鎮顯示交替的顏色。

我希望能夠在每行上單擊“ +”或“-”圖像時顯示和隱藏鄉鎮行。 為了將此圖像僅添加到縣行中,我在綁定的DataTable中添加了另外一列,該列為空(對於鄉鎮而言)或包含帶有“ +”圖像的表格單元:

row["Image"] = "<img src='/includes/plus.gif' />";

這基本上就是我所追求的:

替代文字

當用戶單擊縣上的“ +”或“-”圖像時,我曾嘗試調用JavaScript函數,但是我不確定如何從javascript調用中訪問所有子城鎮以隱藏它們。 我還需要切換縣的“圖像”字段以顯示相反的圖像(即從“ +”->“-”開始,反之亦然)。

<TABLE width="100%" style="border: thin solid #A3A3A3;" cellspacing="0px">
   <asp:repeater id="RepeaterUnits" Runat="server">
    <ItemTemplate>
        <tr '<%# (DataBinder.Eval(Container.DataItem, "RowFormat")) %>' >
            <td style="width: 16px" onclick='ClickCollapse(<%# (DataBinder.Eval(Container.DataItem, "UnitID")) %>);'>
                <%# (DataBinder.Eval(Container.DataItem, "Image")) %>
            </td>
            <td onclick='ClickUnit(<%# (DataBinder.Eval(Container.DataItem, "UnitID")) %>);' width="100%">
                <%# (DataBinder.Eval(Container.DataItem, "UnitName")) %>
            </td>
        </tr>
    </ItemTemplate>
    <AlternatingItemTemplate>
        <tr '<%# (DataBinder.Eval(Container.DataItem, "AltRowFormat")) %>'>
            <td style="width: 16px" onclick='ClickCollapse(<%# (DataBinder.Eval(Container.DataItem, "UnitID")) %>);'>
                <%# (DataBinder.Eval(Container.DataItem, "Image")) %>
            </td>
            <td onclick='ClickUnit(<%# (DataBinder.Eval(Container.DataItem, "UnitID")) %>);' width="100%">
                <%# (DataBinder.Eval(Container.DataItem, "UnitName")) %>
            </td>
        </tr>
    </AlternatingItemTemplate>
</asp:repeater>

我曾考慮過可能在數據網格中為每個縣使用一個轉發器來迭代每個縣的鄉鎮,但是到目前為止,我將每個記錄存儲在同一數據表中,因此必須將縣和鄉鎮划分為多個表。 誰能提出一種更好地解決此問題的方法? 我對ASP.NET相對較新,因此我不知道可以使用的所有選項。

您可以將鄉鎮放在div內,然后簡單地顯示/隱藏該div嗎?

如果以“縣,鄉”為例,對帶有兩列的表格進行排序,則可以有效地遍歷該表,並且每當有新縣成立時,您都會啟動一組新的鄉。

您可以在后面的代碼中使用Repeater的ItemDataBound事件來按行執行所需的任何格式設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM