有没有办法在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 字段来正常运行

有没有办法在aspx C#中附加列表框的数据文本字段

您还可以编辑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 ; }
  }