You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个Web Service返回的string[]合并显示在单个GridView中?

解决方案

需求完全可行,推荐将两个数组合并为统一数据源绑定到单个GridView,实现两列并排展示的效果;如果坚持使用现有两个GridView,也可通过处理数组长度+CSS布局实现对齐。

方法一:合并数据源到单个GridView(推荐)

这种方式无需维护两个GridView的对齐问题,逻辑更简洁:

后台代码

string[] List1 = client.GetProduitCarte(NumAbonne.Text, item).ToArray();
string[] List2 = client.GetServiceCarte(NumAbonne.Text, item).ToArray();

// 处理两个数组长度不一致的情况,取最大长度补空
int maxLength = Math.Max(List1.Length, List2.Length);
var combinedData = Enumerable.Range(0, maxLength)
    .Select(i => new {
        List1Item = i < List1.Length ? List1[i] : string.Empty,
        List2Item = i < List2.Length ? List2[i] : string.Empty
    })
    .ToList();

// 绑定到单个GridView
GridView1.DataSource = combinedData;
GridView1.DataBind();

前端GridView配置

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="List1Item" HeaderText="List1" />
        <asp:BoundField DataField="List2Item" HeaderText="List2" />
    </Columns>
</asp:GridView>

方法二:使用现有两个GridView(需处理对齐)

如果必须保留两个GridView,需先统一数组长度,再通过CSS让它们并排:

后台代码

string[] List1 = client.GetProduitCarte(NumAbonne.Text, item).ToArray();
string[] List2 = client.GetServiceCarte(NumAbonne.Text, item).ToArray();

// 统一两个数组长度,短数组补空字符串
int maxLength = Math.Max(List1.Length, List2.Length);
List1 = List1.Concat(Enumerable.Repeat(string.Empty, maxLength - List1.Length)).ToArray();
List2 = List2.Concat(Enumerable.Repeat(string.Empty, maxLength - List2.Length)).ToArray();

// 分别绑定到两个GridView
GridView1.DataSource = List1;
GridView1.DataBind();
GridView2.DataSource = List2;
GridView2.DataBind();

前端布局与配置

<!-- 用flex容器让两个GridView并排 -->
<div style="display: flex; gap: 20px;">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField HeaderText="List1" DataField="." />
        </Columns>
    </asp:GridView>
    <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField HeaderText="List2" DataField="." />
        </Columns>
    </asp:GridView>
</div>

注意事项

  • 方法二中需确保两个GridView的行高、样式一致,避免出现错位;
  • 优先选择方法一,减少前端样式维护成本,数据展示更稳定。

内容的提问来源于stack exchange,提问作者Poco00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:15:30