将逗号分隔的地址分成同一列中的多行

时间:2013-11-22 16:21:32

标签: c# asp.net sql-server

我有一个存储过程可以提取客户端的详细信息,包括地址。地址是90霍华德广场,旧街,伦敦,EC2 4RA,英国的形式。现在我如何将其显示为

<90>霍华德广场

旧街

伦敦

EC2 4RA

在aspx页面gridview上。

2 个答案:

答案 0 :(得分:1)

一种简单的方法是用逗号分割这些字符串并填充DataTable,您可以将DataSource用作网格:

var tblAddresses = new DataTable();
tblAddresses.Columns.Add("Place");
tblAddresses.Columns.Add("Street");
tblAddresses.Columns.Add("City");
tblAddresses.Columns.Add("Post Code");
tblAddresses.Columns.Add("Country");

string[] input = new[]{"90 Howard Square,Old street, London, EC2 4RA, Uk"};
foreach(string address in input)
    tblAddresses.Rows.Add(address.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries));

现在将其设置为数据源并对其进行数据绑定:

grdAddresses.DataSource = tblAddresses;
grdAddresses.DataBind();

GridView s AutoGenerateColumns属性设置为true,您就完成了。

编辑,因为@OGHaza发表了评论,为您提供了超出实际需求的内容,这里只是插入地址令牌的版本:

tblAddresses.Columns.Add("Address-Part");
string[] input = new[]{"90 Howard Square,Old street, London, EC2 4RA, Uk"};
var allAddressParts = input
    .SelectMany(addr => addr.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries));
foreach (string part in allAddressParts)
    tblAddresses.Rows.Add(part);

答案 1 :(得分:0)

您可以使用String.Split将地址分成其各部分的字符串[]。然后使用String.Trim删除部件上的前导空格。然后使用gridview显示字符串[]。