有没有办法在aspx C#中附加列表框的数据文本字段
本文关键字:列表 数据 字段 文本 aspx 有没有 | 更新日期: 2023-09-27 18:36:15
我有一个列出项目名称的数据绑定列表框,我现在想以如下所示的方式显示项目编号和项目名称:i-001 - 项目 1。我做过类似的事情,但那是当我不使用数据文本字段,而是使用iDataReader的时候。
那么我可以无论如何附加 datatextfield 属性以接受多列吗?是在 aspx 页中还是在代码隐藏中?
如果有任何代码可以提供帮助,我可以将其提供给您,如果有任何可以完成的清理,我将尽力这样做。
谢谢
示例代码:
listItems.DataSource = DAL.Util.getItemProfiles(vendor,catalog);
listItems.DataBind();
public string ItemNumName
{
get { return "CustItemNum" + " - " + "Name"; }
}
protected void listItems_DataBound(object sender, EventArgs e)
{
listItems.DataTextField = ItemNumName;
}
这会导致以下错误消息:
DataBinding:"System.Data.DataRowView"不包含名为"CustItemNum - Name"的属性。
如果我从属性中删除 + " - " + "名称",它通过仅显示 CustItemNum 字段来正常运行
您还可以编辑SQL以连接两列,然后将其用作Datatext字段。使用提供的变量名称,它看起来像这样:
Select CustItemNum, Name, CustItemNum + ' - ' + Name AS NumberName
那么你应该能够使用NumberName作为DataTextField,它应该像"itemNumber - itemName"一样显示
可以在 ListBox 的 OnDataBound 事件中执行此操作。此处的示例:http://asp-net-example.blogspot.com/2011/07/how-to-use-listbox-ondatabound-event-in.html
protected void ListBox1_DataBound(object sender, EventArgs e)
{
//... your logic here to set the text of the item
}
您可以向模型添加一个新属性,该属性组合了这两个字段并将其用作数据值
public string SomeProperty
{
get{return itemnumber + "-"+ itemName ; }
}