【问题标题】:SQL query to gridview loss of \n, How do I add them back?SQL查询到gridview丢失\ n,如何将它们添加回来?
【发布时间】:2015-01-26 07:07:51
【问题描述】:

我有一个简单的 gridview 显示,它从 SQL 查询中提取数据。我们数据库中的“刺绣细节”列是 4 行文本。我想在我的 gridview 中保留每一行文本,而不是显示为 1 行连续的文本。我该如何解决这个问题?

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Orders.aspx.cs" Inherits="Orders" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <div class="row">
               <div class="col-md-12">
                   <div class="page-header">
                       <h1>Outstanding Orders</h1>
                            </div>
                   </div>
            </div>
                   <div class="row">

                   <div class="col-md-3">
                <asp:DropDownList CssClass="btn btn-default btn-block dropdown-toggle" ID="DropDownList1" runat="server">
                <asp:ListItem Value="[Order Number]">Order Number</asp:ListItem>
                <asp:ListItem Value="[Ecommerce Order Number]">Ecommerce Order Number</asp:ListItem>
                <asp:ListItem Value="[Customer Name]">Customer Name</asp:ListItem>
                <asp:ListItem Value="[Item]">Item</asp:ListItem>
                <asp:ListItem Value="[Embroidery Details]">Embroidery Details</asp:ListItem>
                </asp:DropDownList></div>
                       <div class="col-md-3"><asp:TextBox CssClass="form-control" ID="TextBox1" runat="server" placeholder="Enter Search Here"></asp:TextBox></div>
                       <div class="col-md-2"><asp:Button CssClass="btn btn-primary btn-block" ID="Button1" runat="server" onclick="Button1_Click" Text="Filter" /></div>
                       </div>
                 <div class="row">
               <div class="col-md-12">
                   &nbsp;
                   </div>
                     </div>
        <div class="row">
               <div class="col-md-12">
            <asp:GridView CssClass="table table-responsive table-bordered table-striped" ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" AllowSorting="True">
                <Columns>
                    <asp:BoundField DataField="Order Number" HeaderText="Order Number" SortExpression="Order Number" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="Ecommerce Order Number" HeaderText="Ecommerce Order Number" SortExpression="Ecommerce Order Number" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="Customer Name" HeaderText="Customer Name" SortExpression="Customer Name" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="Notes" HeaderText="Notes" SortExpression="Notes" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="Item" HeaderText="Item" SortExpression="Item" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="To be Sent" HeaderText="To be Sent" SortExpression="To be Sent" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="Date Required" HeaderText="Date Required" SortExpression="Date Required" ItemStyle-CssClass="col-lg-1" />
                    <asp:BoundField DataField="Embroidery Details" HeaderText="Embroidery Details" SortExpression="Embroidery Details" ItemStyle-CssClass="col-lg-4" HtmlEncode="false"  />
                  </Columns>
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:LiveDataV2ConnectionString %>" SelectCommand="Select

    order_header.oh_order_number As 'Order Number',
    order_header.oh_ec_order_number As 'Ecommerce Order Number',
    order_header_detail.ohd_customer_name As 'Customer Name',
    order_header.oh_datetime As 'Date',
    ContactManager.cmc_title As 'Notes',
    order_line_item.oli_description As 'Item',
    order_line_item.oli_qty_tbsent As 'To be Sent',
    order_line_item.oli_date_required as 'Date Required',
    order_line_analysis.ola_m_1 as 'Embroidery Details'


    From order_header inner join order_header_detail On order_header.oh_id = order_header_detail.ohd_oh_id
                      inner join order_line_item On order_header.oh_id = order_line_item.oli_oh_id
                      Left Outer Join order_line_analysis on order_line_analysis.ola_oli_id = order_line_item.oli_id

    Outer Apply
        (select top 1 contact_manager_child.cmc_title, contact_manager_parent.cmp_link_id, contact_manager_parent.cmp_reference_id 
        from contact_manager_parent
        join contact_manager_child on contact_manager_child.cmc_cmp_id = contact_manager_parent.cmp_id
        where contact_manager_parent.cmp_customer = 1
        and contact_manager_parent.cmp_reference_id = order_header.oh_id
        and contact_manager_child.cmc_completed = 0
        order by contact_manager_child.cmc_action_by_datetime desc) as  ContactManager

    Where order_header.oh_cd_id BETWEEN 0 AND 100000
    And order_header.oh_os_id = 1
    Order By order_header.oh_datetime"></asp:SqlDataSource>
                   </div>
            </div>

    </asp:Content>

【问题讨论】:

  • 不用gridview,能不能试试直接把这个数据放到页面上,看看会显示4行代码吗?
  • 我对 .net 的了解非常有限,所以不知道你是怎么做到的

标签: c# html sql asp.net gridview


【解决方案1】:

使用 TemplateField 而不是 BoundField。比如:

<asp:TemplateField>
<ItemTemplate>
<%# Replace(Container.DataItem("Embroidery Details"), vbCrLf, "<br/>") %>
</ItemTemplate>
</asp:TemplateField>

【讨论】:

  • 所有排序。谢谢你的帮助。
猜你喜欢
  • 2019-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多