ASP.NET中如何将Bool类型Gender字段True显示为男False显示为女
解决Repeater控件中Bool类型性别字段显示为中文“男/女”的方案
下面提供三种简单可行的解决方法,按需选择:
方法一:在LINQ查询中直接转换字段
直接在查询时将Gender的Bool值转换为对应的中文文本,绑定到Repeater时直接使用转换后的字段:
修改后台代码中的查询部分:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using DentistAppointmentSystem.Entity; namespace DentistAppointmentSystem.AdminPages { public partial class DPatients : System.Web.UI.Page { DentistAppointmentSystemEntities db = new DentistAppointmentSystemEntities(); protected void Page_Load(object sender, EventArgs e) { var hastalar = (from x in db.TBL_PATIENTS select new { x.TBL_USERS.Name, x.TBL_USERS.Surname, x.IDNumber, GenderText = x.Gender ? "男" : "女", x.Birthday, x.Phone }).ToList(); Repeater1.DataSource = hastalar; Repeater1.DataBind(); } } }
之后在Repeater的模板中绑定GenderText字段即可。
方法二:在Repeater前台模板中用三元表达式处理
无需修改后台查询,直接在前台的Repeater ItemTemplate中处理Bool值:
假设你的Repeater模板中性别列的代码是这样的,修改成:
<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <!-- 其他列 --> <td><%# (bool)Eval("Gender") ? "男" : "女" %></td> <!-- 其他列 --> </tr> </ItemTemplate> </asp:Repeater>
方法三:后台定义转换方法,前台调用
在后台页面类中添加一个公共方法,专门处理性别转换:
public string GetGenderText(bool gender) { return gender ? "男" : "女"; }
然后在前台Repeater模板中调用这个方法:
<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <!-- 其他列 --> <td><%# GetGenderText((bool)Eval("Gender")) %></td> <!-- 其他列 --> </tr> </ItemTemplate> </asp:Repeater>
内容的提问来源于stack exchange,提问作者M3rtixius
相关产品推荐
相关产品推荐

