asp.net 组合DataTextField中的两个字段,这可能吗?

2skhul33  于 2023-10-21  发布在  .NET
关注(0)|答案(4)|浏览(116)

我有一个数据集,我绑定到一个列表框。但是,我希望将其中两个字段合并组成DataTextField。这是可能的吗?或者我必须循环遍历数据库?

lstAddressDropdown.DataSource = dsAddress;
lstAddressDropdown.DataTextField = "StreetAddress" + "Place";
lstAddressDropdown.DataBind();
lstAddressDropdown.Items.Insert(0, new ListItem("Please select"));

值得注意的是,数据集是从Web服务返回的,因此我不能更改任何存储过程来合并组合其中的列。

xggvc2p6

xggvc2p61#

您可以向作为计算列的datatable添加一个附加列,并将其用作datatextfield(请参阅Microsoft Learn Multi-Field Data Binding文档页)。
对于上面的例子,你可以这样做:

dsAddress.Tables[0].Columns.Add("StreetAndPlace",typeof(string),"StreetAddress + Place");
lstAddressDropdown.DataSource = dsAddress;
lstAddressDropdown.DataTextField = "StreetAndPlace";
lstAddressDropdown.DataBind();
lstAddressDropdown.Items.Insert(0, new ListItem("Please select"));

要在StreetAddress和Place之间添加空格,请将上面显示的表达式字符串替换为"StreetAddress + ' ' + Place"

jm81lzqq

jm81lzqq2#

根据Oracle中的要求修改查询

SELECT
'<B>'||SHORTNAME||'</B><br/>('||DEPARTMENT||')' AS USERNAME
FROM TABLE

在上面的查询中,名称将以粗体显示,部门将显示如下:

<b>Mr. Jagdeep Mankotia</b><br>
(Web Application Development)
lo8azlld

lo8azlld3#

修改选择命令并合并组合要显示的2个DataTextField。

DataSource.SelectCommand = "Select (Column1 || ' ' || Column2) As Column1And2 From Table";

RadioButtonList1.DataTextField = "Column1And2";
bwleehnv

bwleehnv4#

你再也不需要用LINQ写循环了。

  • 创建一个类来返回两个字段。
public partial class EmployeeDropdownInfo
{
    public int person_id { get; set; }
    public string employee_name { get; set; }
}
  • 获取你的数据,使用linq过滤并返回你所需要的。
List<EmployeeDropdownInfo> requestors = (from t in dc.sp_GetEmployees()
select new EmployeeDropdownInfo() 
{ 
    person_id = t.person_id, 
    employee_name = t.first_name + " " + t.last_name 
}).ToList();

EmployeeDropdownInfo firstEntry2 = new EmployeeDropdownInfo() { person_id = 0, employee_name = "-- Select an Employee -- " };
requestors.Insert(0, firstEntry2);
ddlRequestor.DataSource = requestors;
ddlRequestor.DataTextField = "employee_name";
ddlRequestor.DataValueField = "person_id";
ddlRequestor.DataBind();

这样你就不需要改变过程,而且下拉菜单在大多数情况下只需要两个值。

相关问题