【问题标题】:grid view how to hide detail of some special type of data when i bind data in grid view in asp.net?当我在asp.net的网格视图中绑定数据时,网格视图如何隐藏某些特殊类型数据的细节?
【发布时间】:2012-11-16 18:20:23
【问题描述】:

我有一个问题,我正在从数据源在网格视图中绑定数据,并且我正在获取不同类型的订单状态开始表格 1 到 7 的信息。我不想在我的网格视图中显示状态 7 数据。你能帮我看看我们是怎么做的吗

 <data:EntityGridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
                        DataSourceID="ActiveOrdersDataSource" Width="100%" DataKeyNames="OrderNo" AllowMultiColumnSorting="false"
                         OnRowCommand="GridView1_RowCommond" OnRowDataBound="GridView1_OnRowDataBound"
                        DefaultSortDirection="Descending"  ExcelExportFileName="Export_ActiveOrders.xls">
                        <Columns>
                            <asp:CommandField ShowSelectButton="True" SelectText="Edit" />
                            <asp:BoundField DataField="OrderNo" ItemStyle-HorizontalAlign="Center" HeaderText="Order No" SortExpression="[OrderNo]" />
                            <asp:BoundField DataField="OrderDate" DataFormatString="{0:d}" HtmlEncode="False"
                                HeaderText="Order Date" SortExpression="[OrderDate]" />
                            <asp:BoundField DataField="PickupCompanyName" HeaderText="Pickup Company" SortExpression="[PickupCompanyName]" Visible="false" />
                            <asp:BoundField DataField="DeliveryCompanyName" HeaderText="Delivery Company" SortExpression="[DeliveryCompanyName]" Visible="false"  />
                            <data:HyperLinkField HeaderText="Ac.No." ControlStyle-ForeColor="Black" DataContainer="AccountNumberSource"
                                DataTextField="AccountNumber" />
                                 <data:HyperLinkField HeaderText="Client"  DataContainer="AccountNumberSource"
                                DataTextField="Name" />
                                <asp:BoundField DataField="Caller" ItemStyle-HorizontalAlign="Center" HeaderText="Caller" SortExpression="[Caller]" />
                                 <asp:BoundField DataField="Department" ItemStyle-HorizontalAlign="Center" HeaderText="Department" SortExpression="[Department]" />
                                 <asp:BoundField DataField="Reference" HeaderText="Reference" SortExpression="[Reference]"  />
                            <asp:TemplateField HeaderText="Driver" HeaderStyle-HorizontalAlign="Left">
                                <ItemTemplate>
                                    <asp:Label ID="lblDriver" runat="server" Text='<%#Eval("CurrentDriverNumberSource.Name") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <data:HyperLinkField HeaderText="Service"  ControlStyle-ForeColor="Black" DataContainer="ServiceTypeIdSource"
                                DataTextField="Description" />
                            <data:HyperLinkField HeaderText="Vehicle" ControlStyle-ForeColor="Black" DataContainer="VehicleTypeIdSource"
                                DataTextField="Description" />
                            <asp:TemplateField HeaderText="Status" HeaderStyle-HorizontalAlign="Left">
                                <ItemTemplate>
                                    <asp:Label ID="lblStatus" runat="server" Text='<%#Eval("StatusID") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="TotalAmount" ItemStyle-HorizontalAlign="Center">
                                            <ItemTemplate>
                                            <asp:Label ID="lblAmount" runat="server" Text='<%# Eval("TotalAmount","{0:C2}")%>' ></asp:Label> 
                                            </ItemTemplate>
                                            <ItemStyle HorizontalAlign="Right" />
                                            </asp:TemplateField>

                        </Columns>

                        <EmptyDataTemplate>
                            <b>No Active Orders Found!</b>
                        </EmptyDataTemplate>
                    </data:EntityGridView>

对于数据源我使用这个

 <data:ActiveOrdersDataSource ID="ActiveOrdersDataSourcebyCompany" runat="server" SelectMethod="GetPaged" EnablePaging="True" EnableSorting="True" EnableDeepLoad="True">
                        <DeepLoadProperties Method="IncludeChildren" Recursive="False">
                            <Types>
                                <data:ActiveOrdersProperty Name="Clients" />
                                <data:ActiveOrdersProperty Name="Companies" />
                                <data:ActiveOrdersProperty Name="Drivers" />
                                <data:ActiveOrdersProperty Name="SalesPeople" />
                                <data:ActiveOrdersProperty Name="ServiceTypes" />
                                <data:ActiveOrdersProperty Name="VehicleTypes" />
                                <data:ActiveOrdersProperty Name="Zones" />
                                </Types>
                        </DeepLoadProperties>
                        <Parameters>
                        <asp:SessionParameter Name="CompanyId" SessionField="CompanyId" Type="String" />
              <data:SqlParameter Name="WhereClause" UseParameterizedFilters ="false">
                          <Filters>

                            <%--<data:CustomParameter Name="WhereClause" Value="" ConvertEmptyStringToNull="false" />
                            <data:CustomParameter Name="OrderByClause" Value="" ConvertEmptyStringToNull="false" />
                            <asp:ControlParameter Name="PageIndex" ControlID="GridView1" PropertyName="PageIndex"
                                Type="Int32" />
                            <asp:ControlParameter Name="PageSize" ControlID="GridView1" PropertyName="PageSize"
                                Type="Int32" />
                            <data:CustomParameter Name="RecordCount" Value="0" Type="Int32" />--%>
                        </Parameters>
                    </data:ActiveOrdersDataSource>

【问题讨论】:

  • 所以你想隐藏状态码为 7 的行?为什么不在 sql 查询(实体选择)中省略它们。此外,您可以使用 onrowdatabound 事件(您可以用谷歌搜索)
  • 既然我假设您将在代码中分配WhereClause SQL 参数值,是否有某些原因您不能将 ' AND [Status] 7' 附加到末尾是吗?
  • 我知道这个史蒂夫,但问题是我正在使用 nettier 架构,如果我更改并添加一些内容使其停止工作,它会创建存储过程的 xml,否则我会自定义它,因此我将其发布为像你这样的天才。
  • 嗨,Ann L,谢谢你的回复,我确实想要这个。我需要将 WhereClause 放在该部分的位置

标签: c# asp.net asp.net-3.5


【解决方案1】:

古坦

你可以使用过滤标签来设置你想要的值:

<Parameters>
  <data:SqlParameter Name="WhereClause" UseParameterizedFilters="false">
    <Filters>
      <data:ChartOfAccountsFilter Column="Status" ComparisionType="NotContains" DefaultValue="7"    />
    </Filters>
  </data:SqlParameter>
</Parameters>

【讨论】:

    【解决方案2】:

    您可以按照以下代码制作:

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
    Dim x As String
    x = e.Row.Cells(1).Text
    Dim y As String
    y = e.Row.Cells(8).Text
    If Convert.ToInt32(x) <= Convert.ToInt32(y) Then
    e.Row.ForeColor = System.Drawing.Color.Blue
    End If
    End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多