我有一个列出项目名称的数据绑定列表框,我现在想要显示项目编号和项目名称,如下所示: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字段正确运行
答案 0 :(得分:1)
您可以向模型中添加一个新属性,该属性组合了两个字段并将其用作数据值
public string SomeProperty
{
get{return itemnumber + "-"+ itemName ; }
}
答案 1 :(得分: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
}
答案 2 :(得分:1)
你也可以编辑你的sql以连接两列,然后将它用作你的datatextfield。使用提供的变量名称,它看起来像:
Select CustItemNum, Name, CustItemNum + ' - ' + Name AS NumberName
那么你应该可以使用NumberName作为DataTextField,它应该显示为“itemNumber - itemName”