网格视图项模板的条件逻辑(仅使用标记)
本文关键字:条件逻辑 视图 网格 | 更新日期: 2023-09-27 18:35:38
我有一个网格视图,如下所示。当 EmpType 为合约时,EmpID 必须被屏蔽为"XXX"; 对于正式员工,应显示实际的 EmpID。此外,当它被屏蔽时,我需要在 EmpID 列中添加一个按钮控件。
我需要使用标记来做到这一点;而不是使用代码隐藏。我们如何为Gridview的ItemTemplate编写此逻辑的条件逻辑?
注意:.Net 4.0
<asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="AssociateID" DataField="AssociateID" />
<asp:TemplateField HeaderText="EmpID">
<ItemTemplate>
<%# Eval("EmpID")%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="EmpType" DataField="EmpType" />
</Columns>
</asp:GridView>
代码隐藏
List<Associate> associatesList = new List<Associate>();
associatesList.Add(new Associate { AssociateID = 1, EmpID = 101, EmpType = "Contract" });
associatesList.Add(new Associate { AssociateID = 2, EmpID = 102, EmpType = "Regular" });
Gridview1.DataSource = associatesList;
Gridview1.DataBind();
试试这个
<%# Eval("EmpType") == "Contract" ? "XXX" : Convert.ToString(Eval("EmpID"))%>
而不是
<%# Eval("EmpID")%>
以下作品
<asp:TemplateField HeaderText="EmpID">
<ItemTemplate>
<%# Convert.ToString(Eval("EmpType")) == "Contract" ? "XXX" : Convert.ToString(Eval("EmpID"))%>
<asp:Button ID="Button1" runat="server" Text="Button"
Visible='<%# Eval("EmpType") == "Contract" ? true : false %>' />
</ItemTemplate>
</asp:TemplateField>
相关:
行号可以通过以下 获取 GridView 使用上一页选定的行值
CommandArgument="<%# ((GridViewRow)Container).RowIndex %>"