【问题标题】:Databinding multiple records to a single vertical-column table in asp.net gridview将多条记录数据绑定到 asp.net gridview 中的单个垂直列表
【发布时间】:2017-12-12 14:51:09
【问题描述】:

我使用 selectmethod 获取数据并且工作正常,问题是我不想为插入的每条记录创建一个新表。我想在现有表中添加一个新列。如下图所示

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">



    <asp:GridView ID="FormView1" runat="server" ShowHeader="False" ItemType="MieleRepresentative.SteamBoiler" SelectMethod="GetSteamBoilerModels" RenderOuterTable="false" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>

                <table class="table-striped table-bordered">
                    <tr style="background-color: thistle!important;">
                        <td style="font-weight: bold;">Model</td>
                        <td><%# Eval("Model")%></td>
                    </tr>


                    <tr>
                        <td style="font-weight: bold">WorkingPressureLimit</td>
                        <td><%# Eval("WorkingPressureLimit")%></td>
                    </tr>
                    <tr>
                        <td style="font-weight: bold">TestPressureLimit</td>
                        <td><%# Eval("TestPressureLimit")%></td>
                    </tr>
                    <tr>
                        <td style="font-weight: bold">Electrical</td>
                        <td><%# Eval("Electrical")%></td>
                    </tr>
                    <tr>
                        <td style="font-weight: bold">Diameter</td>
                        <td><%# Eval("Diameter")%></td>
                    </tr>
                    <tr>
                        <td style="font-weight: bold">Height</td>
                        <td><%# Eval("Height")%></td>
                    </tr>
                    <tr>
                        <td style="font-weight: bold">Weight</td>
                        <td><%# Eval("Weight")%></td>
                    </tr>

                </table>
            </ItemTemplate>

        </asp:TemplateField>

    </Columns>
</asp:GridView>

       public IQueryable<SteamBoiler> GetSteamBoilerModels([QueryString("productID")] Guid productId)
    {

        var _mieleDbEntities = new MieleDBEntities();

        return _mieleDbEntities.SteamBoilers.Where(boiler => boiler.FKProduct == productId);
    }

【问题讨论】:

  • GridView 是 HTML 中的表格。您正在做的是在不需要时创建嵌套表。或者使用中继器,然后您可以更好地控制生成的 HTML。谷歌GridView TemplateField,你会没事的。

标签: c# asp.net gridview webforms templatefield


【解决方案1】:

如果您想要一个包含未定义列数的表格(每条记录选择一个),可能 GridView 不是您的最佳选择。

在我看来,您应该以这种方式在 .aspx 页面中动态构建表格:

<% var steamBoilersList = GetSteamBoilerModels(...params...); %>
<table>
    <!-- first row -->
    <tr>
        <% foreach (var singleSteamBoiler in steamBoilersList) { %>
        <td>
            <%= singleSteamBoiler.FIELD1 %>
        </td>
    </tr>

    <!-- second row and so on -->
    <tr>
        <% foreach (var singleSteamBoiler in steamBoilersList) { %>
        <td>
            <%= singleSteamBoiler.FIELD2 %>
        </td>
    </tr>
</table>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多