簡體   English   中英

與項目模板中的用戶控件一起使用時顯示隱藏轉發器項目模板字段

[英]Show hide repeater item template field when used with user control in item template

嗨,我在 repater 項目模板中有一個用戶控件。我想根據字符串中的某些值隱藏用戶控件列。下面是我的代碼

<asp:Repeater runat="server" ID="MyRepeater" OnItemDataBound="MyRepeater_ItemDataBound">
                    <ItemTemplate>
                        <uc2:UCToolEventSummary runat="server" ID="UCSummary"
                            TaskId='<%#Eval("TaskId")%>'
                            SystemName='<%#Eval("SystemName")%>'
                            ResourceName='<%#Eval("ToolName")%>'
                            Requestor='<%#Eval("Requestor")%>'
                            CategoryName='<%#Eval("CategoryName")%>'
                    </ItemTemplate>
                </asp:Repeater>

我想隱藏基於字符串列表的列

list<string> columnsHidden = "SystemName,CategoryName"

所以 systemname 和 categoryName 應該隱藏在用戶控件中

我在項目數據綁定事件中嘗試了以下方法,但無法做到這一點

 protected void MyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
     List<String> columnsList = new List<String>();
                columnsList = "SystemName,CategoryName";
    
                if (e.Item.ItemType == ListItemType.Item ||
            e.Item.ItemType == ListItemType.AlternatingItem)
                {
                   
    
                    var control = e.Item.FindControl("UCSummary");
                    foreach (String columnName in columnsList)
                    {
    
                    }
                }
}

我的用戶控件代碼如下

    <table class="table table-bordered">
    <tr class="row">
        <td class="col25">
            Task Id: <%=TaskId %>
        </td>
        <td  class="col25">
            System Name: <%=SystemName %>
        </td>
         <td  class="col25">
            Task Status: <%=TaskStatus %>
        </td >
          <td  class="col25">
            Requestor:  <%=Requestor %>
        </td>

 <td  class="col25">
            Request Type: <%=CategoryName %> 
        </td>
    </tr>
    </table>

有人可以幫我嗎? 謝謝

您在標記中添加了一些帶有您需要的列的自定義屬性。 因此,在項目數據綁定上,您應該能夠抓取/獲取該控件,然后隱藏/顯示該轉發器中的其他列(控件)。

而且我認為不需要 for each 循環。 項目數據綁定為數據綁定上的每一行觸發一次。 因此:

var UCToolEventSummary UC = e.Item.FindControl("UCSummary");
if UC.Attributes.item("CategoryName") = "zoo" {
    get other controls - hide or show them - use style in place of visible

暫無
暫無

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

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