1

我有一个列出项目名称的数据绑定列表框,我现在想要显示项目编号和项目名称,如下所示:i-001 - 项目 1。我做了类似的事情,但它是当我不使用数据文本字段,而是使用 iDataReaders 时。

那么我可以附加 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”的属性。

如果我从属性中删除 + " - " + "Name" ,它会通过仅显示 CustItemNum 字段来正常运行

4

3 回答 3

1

您可以在 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
}
于 2012-06-05T13:09:30.580 回答
1

您可以向模型中添加一个新属性,该属性结合了这两个字段并将其用作数据值

  public string SomeProperty
  {
      get{return  itemnumber + "-"+ itemName ; }
  }
于 2012-06-05T13:07:39.107 回答
1

您还可以编辑您的 sql 以连接两列,然后将其用作您的数据文本字段。使用提供的变量名,它看起来像:

Select CustItemNum, Name,  CustItemNum + ' - ' + Name AS NumberName

那么您应该能够使用 NumberName 作为 DataTextField 并且它应该显示为“itemNumber - itemName”

于 2012-06-19T15:17:46.880 回答