如何将两个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
相关产品推荐
相关产品推荐

