C# 设置数据绑定的DataTextField的if条件
我正在尝试设置使用数据绑定有选择地显示某些文本 代码如下所示C# 设置数据绑定的DataTextField的if条件,c#,data-binding,C#,Data Binding,我正在尝试设置使用数据绑定有选择地显示某些文本 代码如下所示 DataTable oDt; oDt = Apps.GetAll(); if (oDt.Rows.Count > 0) { oDt.Columns.Add("AppName_ID", typeof(string), "App_Name + ' (' + App_ID + ')'"); CmbApps.DataSourc
DataTable oDt;
oDt = Apps.GetAll();
if (oDt.Rows.Count > 0)
{
oDt.Columns.Add("AppName_ID", typeof(string), "App_Name + ' (' + App_ID + ')'");
CmbApps.DataSource = oDt;
CmbApps.DataValueField = "App_ID";
CmbApps.DataTextField = "AppName_ID";
CmbApps.DataBind();
}
问题是第一个值显示为:选择(0)。。因此,我试图在“App_ID”=0时更改datatextfield,以便App_ID不显示,而是显示在所有其他值中 不确定语法,但将接近下面的内容
DataTable dt2 = oDt.Select("(App_ID != 0)").CopyToDataTable();
使用Linq到数据表
DataTable tblFiltered = oDt.AsEnumerable()
.Where(row => row.Field<String>("App_ID") == "1")
.CopyToDataTable();
更新
foreach (DataRow DRow in oDt.Rows)
{
if(DRow["app_id"].ToString().Equals("0"))
DRow["AppName_ID"] = "Select";
}
CmbApps的类型是什么?它实际上是一个下拉列表。。不知道为什么原始编码器没有使用ddl作为前缀。。在这种情况下,您可以尝试重写
DataBinding
事件,并根据您的规则跳过该项。我正开始使用行筛选器。。但我希望“选择(0)”显示为“选择”。我也不想硬编码选择。所以在算法上。。如果app_id=0不仅显示app_名称,如果app_id 0显示app_名称+appID@DJPlayer-更新的答案可能会有所帮助。
foreach (DataRow DRow in oDt.Rows)
{
if(DRow["app_id"].ToString().Equals("0"))
DRow["AppName_ID"] = "Select";
}