2012-11-16 1 views
0

J'ai un problème je lie des données dans la vue de grille de datasource et là j'obtiens l'information de différent type de statut de commande commence le formulaire 1 à 7. Je ne veux pas afficher les données d'état 7 dans ma vue de grille. pouvez-vous me aider comment nousgrille voir comment cacher les détails d'un type particulier de données lorsque je lie des données dans la vue de la grille dans asp.net?

<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> 

et pour utiliser cette source de données i

<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> 
+0

Donc, vous voulez masquer les lignes qui ont un code d'état 7? Pourquoi ne les omettez-vous pas dans votre requête sql (sélection d'entité). En outre, vous pouvez utiliser l'événement onrowdatabound (que vous pouvez google) –

+1

Puisque je suppose que vous allez affecter la valeur du paramètre SQL 'WhereClause' dans le code, y a-t-il une raison pour laquelle vous ne pouvez pas ajouter 'AND [Status] < > 7 'à la fin de celui-ci? –

+0

je sais ce Steve mais le problème est que j'utilise l'architecture de nettier qui crée le xml de procédure de magasin si je change et j'ajoute quelque chose en ce qu'il arrête de fonctionner, Sinon je customise ainsi je publie ceci comme personne de génie. –

Répondre

1

Goutam,

vous pouvez utiliser la balise de filtre pour définir la valeur que vous voulez comme:

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

vous pouvez faire selon ce code:

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 
Questions connexes