[英]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.