1

webservice在这个变量BookingDetailsEmailRS[]bookingDetailsEmailRS 中收到航空公司的回复。

我想在嵌套数组中获取 Travelers 字段。
在我的网格视图旅行者姓名列中填写此字段。

protected void Button1_Click(object sender, EventArgs e)
{
    GatewayBookingClient b = new GatewayBookingClient();

    string emailid = "mshrivastava@fareportal.com";

    string errorCode = string.Empty;
    string errorAtNode = string.Empty;

    SoapAuthentication soap = new SoapAuthentication();
    soap.UserName = "peter@mobissimo.com";
    soap.Password = "mob1ss1mo1947";
    BookingDetailsEmailRS[] bookingDetailsEmailRS = b.GetBookingDetails(soap, emailid, out  errorCode, out  errorAtNode);

    for (int i = 0; i < bookingDetailsEmailRS.Length - 1; i++)
    {
        GridView1.DataSource = bookingDetailsEmailRS;
        GridView1.DataBind();
    }  
}

我成功地从数组中获取了值,但另一个问题是我想在网格的“TravellerName”列中绑定名称变量的每个值。“TravellerName”列在网格中创建了我自己的列。

    string name = bookingDetailsEmailRS[i].Travelers[0].FirstName +  
    bookingDetailsEmailRS[i].Travelers[0].MiddleName +  
    bookingDetailsEmailRS[i].Travelers[0].LastName;
4

2 回答 2

2

用于Linq IEnumerable将这些值分配object array给 GridView,如下所示.....

GridView1.DataSource = bookingDetailsEmailRS.Select(obj=>obj.Travelers).Select(x=>x.FirstName+x.MiddleName+x.LastName).ToList();

如果您Travelers在 bookingDetailsEmailRS 中只收到一个,那么您可以直接写如下...

GridView1.DataSource = bookingDetailsEmailRS.Select(obj=>obj.Travelers[0].FirstName+obj.Travelers[0].MiddleName+obj.Travelers[0].LastName)).ToList();

编辑:-如果您想要所有列以及上面连接的列,请尝试以下...

GridView1.DataSource = bookingDetailsEmailRS.Select(obj=>new {
    Username =obj.Travelers[0].FirstName+obj.Travelers[0].MiddleName+obj.Travelers[0].LastName,
    obj.property1,
    obj.property2
}).TolIst();
于 2013-02-21T09:42:41.567 回答
0

可以实现代码

string name = bookingDetailsEmailRS[i].Travelers[0].FirstName + bookingDetailsEmailRS[i].Travelers[0].MiddleName + bookingDetailsEmailRS[i].Travelers[0].LastName;

通过从服务返回数据集。在这种情况下,您希望返回数据集而不是列表、数组。

如果您要返回一个列表,您可以通过以下方式获取代码

string name = bookingDetailsEmailRS[i].FirstName + bookingDetailsEmailRS[i].MiddleName + bookingDetailsEmailRS[i].LastName;

因为 bookingDetailsEmailRS[] 是 BookingDetailsEmailRS 类的列表/数组。

谢谢

于 2013-02-21T09:14:18.520 回答