Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: filtrare gridview

  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    filtrare gridview

    Quelle giornate in cui non ti riescono le cose banali le vorresti cancellare dal calendario col bazooka...
    Ho una gridview con un datasource creato lato aspx.
    Nelle righe del gridview ho un bottoncino per ogni riga che, al click, ridirige su un'altra pagina mettendo in querystring l'ID del record cliccato.
    Al load di pagina la gridview si popola serenamente con i dati non filtrati.
    Fuori dal gridview ho una dropdownlist e un bottone di invio dei dati: all'invio dei dati, in base al selectedvalue della dorpdownlist dovrei filtrare i dati mostrati nella gridview facendo vedere solo quelli in cui un certo campo contiene un valore uguale al selectedvalue della gridview.

    Sarebbe di una banalità sconvolgente... se ci fossi riuscito.
    L'idea è di creare una filterexpression per l'sqldatasource del gridview, tipo così
    codice:
    Protected Sub ButtonS_Click(sender As Object, e As EventArgs) Handles ButtonS.Click
            If dropdown.SelectedValue = "" Then
                SQLmovs.FilterExpression = ""
            Else
                SQLmovs.FilterExpression = "Tb_tabella.ID = " & dropdown.SelectedValue
            End If
        End Sub
    Bene, dopo aver settato la filterexpression la risposta della pagina è Cannot find column Tb_tabella.ID....
    Spiegatemi perchè per favore...
    Ultima modifica di supermac; 15-06-2015 a 17:48
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    dovresti postare il codice della pagina aspx anche, forse ti stai riferendo all'sqldatasource sbagliato ?

    oppure:
    https://msdn.microsoft.com/it-it/lib...v=vs.110).aspx


    in questo esempio nell'sqldatasource aggiunge un FilterParameter:
    codice:
    <asp:SqlDataSource
                    id="SqlDataSource1"
                    runat="server"
                    ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                    SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
                    FilterExpression="Title='{0}'">
                    <FilterParameters>
                        <asp:ControlParameter Name="Title" ControlId="DropDownList1" PropertyName="SelectedValue"/>
                    </FilterParameters>
                </asp:SqlDataSource>

    ora non ho tempo di provare..
    Ultima modifica di djciko; 15-06-2015 a 17:56

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    sarebbe un po' grossa, no no ti confermo che è il datasource giusto e anche che il campo esiste
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Sicuro di aver "pre-selezionato" il database giusto?

  5. #5

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    codice aspx
    codice:
     <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/.....Master" CodeBehind="mypage.aspx.vb" Inherits="mypage" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <div class="loading">
            Loading. Please wait.<br />
            <br />
            <img src="/img/loader.gif" alt="" />
        </div>
        <p>&nbsp;</p>
        <div class="container">
            <div class="col-md-10">
                <asp:Label ID="Label1" runat="server" Text="Label"><b>Elenco depositi movimentati negli ultimi 60 gg</b><br />
                    </asp:Label>
                    <br />
                <div class="col-md-9">
                    <asp:DropDownList ID="deposito" runat="server" AppendDataBoundItems="true" DataSourceID="sqldepositi" DataTextField="fullnome" DataValueField="IDmag" >
                        <asp:ListItem Value="">Filtra per deposito</asp:ListItem>
                    </asp:DropDownList>
                </div>
                <div class="col-md-3">
                    <asp:Button ID="ButtonS" runat="server" Text="Cerca" CssClass="btn btn-primary" ValidationGroup="ammfiltri" CausesValidation="true" ClientIDMode="static"  />
                </div>
            </div>
    
            <div class="col-md-2">
                ...
            </div>
        </div>
        <div class="container">
            <div class="col-xs-8 col-lg-offset-2 col-sm-offset-1 col-xs-offset-0">
                <asp:GridView ID="GridView1" runat="server" AllowSorting="True" DataKeyNames="ID,Data" AutoGenerateColumns="False" DataSourceID="SQLmovs" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" CssClass="table table-striped">
                    <Columns>
                        <asp:TemplateField HeaderText="" HeaderStyle-Width="10px">
                            <ItemTemplate></ItemTemplate>
                            <HeaderStyle Width="10px"></HeaderStyle>
                        </asp:TemplateField>
                        <asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" DataFormatString="{0:dd/MM/yyyy}" />
                        <asp:BoundField DataField="fullnome" HeaderText="Nome deposito" SortExpression="fullnome" />
                        <asp:TemplateField ShowHeader="False" HeaderStyle-Width="50px">
                            <ItemTemplate>
                                <asp:Button ID="Button1" runat="server" CausesValidation="False" CommandName="Select" Text="Vedi" CssClass="btn btn-xs btn-primary" />
                            </ItemTemplate>
                        </asp:TemplateField></Columns>
                </asp:GridView>
            </div>
        </div>
        <asp:SqlDataSource ID="SQLmovs" runat="server" ConnectionString='<%$ ConnectionStrings:pippo%>'
            SelectCommand="SELECT  blablabla" 
            >
            <SelectParameters>
                <asp:SessionParameter SessionField="IDcliente" DefaultValue="0" Name="IDcli"></asp:SessionParameter>
            </SelectParameters>
        </asp:SqlDataSource>
    
        <asp:SqlDataSource ID="Sqldepositi" runat="server" ConnectionString='<%$ ConnectionStrings:pippo%>' 
            SelectCommand="SELECT blablablabla" >
            <SelectParameters>
                <asp:SessionParameter Name="IDcli" SessionField="IDcliente" Type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>
    
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript">
            function ShowProgress() {
                setTimeout(function () {
                    var modal = $('<div />');
                    modal.addClass("modal");
                    $('body').append(modal);
                    var loading = $(".loading");
                    loading.show();
                    var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
                    var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
                    loading.css({ top: top, left: left });
                }, 200);
            }
            $('form').live("submit", function () {
                ShowProgress();
            });
        </script>
    </asp:Content>
    aspetta copiando mi è venuto un dubbio mortale.... non è che per filtrare il campo deve essere presente nel gridview come boundfield??? Ora provo...
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    no non è quello
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  8. #8
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    ho provato anche col controlparameter usato come filterparameter, niente da fare mi risponde sempre che non trova la colonna che uso per filtrare...

    notare che se metto la filterexpression in where dentro al SqlManagementStudio la query va alla grande
    Ultima modifica di supermac; 15-06-2015 a 18:24
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  9. #9
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Server Error in '/' Application.


    Cannot find column [MyDB.Mytabella.To_ID_Tb_Magazzini].

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Data.EvaluateException: Cannot find column [MyDB.MyTabella.To_ID_Tb_Magazzini].

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:

    [EvaluateException: Cannot find column [MyDB.MyTabella.To_ID_Tb_Magazzini].]
    System.Data.NameNode.Bind(DataTable table, List`1 list) +1336269
    System.Data.BinaryNode.Bind(DataTable table, List`1 list) +34
    System.Data.DataExpression.Bind(DataTable table) +84
    System.Data.DataExpression..ctor(DataTable table, String expression, Type type) +5310899
    System.Data.DataView.set_RowFilter(String value) +141
    System.Web.UI.WebControls.FilteredDataSetHelper.Cr eateFilteredDataView(DataTable table, String sortExpression, String filterExpression, IDictionary filterParameters) +384
    System.Web.UI.WebControls.SqlDataSourceView.Execut eSelect(DataSourceSelectArguments arguments) +1821
    System.Web.UI.DataSourceView.Select(DataSourceSele ctArguments arguments, DataSourceViewSelectCallback callback) +21
    System.Web.UI.WebControls.DataBoundControl.Perform Select() +138
    System.Web.UI.WebControls.BaseDataBoundControl.Dat aBind() +30
    System.Web.UI.WebControls.GridView.DataBind() +4
    System.Web.UI.WebControls.BaseDataBoundControl.Ens ureDataBound() +105
    System.Web.UI.WebControls.GridView.OnPreRender(Eve ntArgs e) +26
    System.Web.UI.Control.PreRenderRecursiveInternal() +83
    System.Web.UI.Control.PreRenderRecursiveInternal() +155
    System.Web.UI.Control.PreRenderRecursiveInternal() +155
    System.Web.UI.Control.PreRenderRecursiveInternal() +155
    System.Web.UI.Control.PreRenderRecursiveInternal() +155
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +974


    A essere pignoli nella filterexpression è scritto
    "[MyDB].MyTabella.To_ID_Tb_Magazzini={0}"
    però non credo che sia quello che rompe (ho provato anche togliendo il nome del db comunque e non va uguale)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    è proprio vero che la notte porta consiglio... stamattina mi sono svegliato con un pensiero: il filtraggio dei dati viene fatto da aspNet quando il recordset è già costituito, non viene fatto a livello di database ma sulla pagina, il che potrebbe voler dire che nella filterexpression non vanno indicati i riferimenti del db ma neanche della tabella a cui il campo da filtrare appartiene... arrivo in ufficio, tolgo le info suddette dalla filterexpression e TAAAC
    Serie di parolacce per aver perso una giornata su un problema così idiota e non aver trovato prima la soluzione.
    Grazie a tutti, vado a bere per dimenticare
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.