与项目模板中的用户控件一起使用时,显示隐藏转发器项目模板字段



Hi我在repter项模板中有一个用户控件。我想根据字符串中的某些值隐藏用户控件列。下面是我的代码

<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>

有人能帮我吗?谢谢

您在标记中添加了一些带有所需列的自定义属性。因此,在项数据绑定上,您应该能够获取/获取该控件,然后隐藏/显示该中继器中的其他列(控件(。

我不认为每个循环都需要一个。项数据绑定为数据绑定上的每一行触发一次。因此:

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

最新更新