13 messaggi dal 07 ottobre 2008
Ciao a tutti, sono nuovo del forum...e di ASP...
Volevo sapere se qualcuno sa come filtrare i dati di una Gridview.

Praticamente ho una semplice tabella con 4 DropDownList, 3 TextBox ed un bottone per azionare il tutto e riempire la GridView.

Quello che dovrei fare è semplicemente premere il pulsante e popolare la GridView in base ai dati che ci sono nelle varie TextBox/DropDownList (anche se alcuni sono senza testo)

Questo è il codice relativo alla gridview:

</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:CVConnectionString %>"
ProviderName="<%$ ConnectionStrings:CVConnectionString.ProviderName %>"

SelectCommand="SELECT ID, Titolo, Nome, Cognome, City, DatadiNascita, DataDiLaurea, Voto, Settore FROM CV WHERE (Titolo = ?) OR (Nome LIKE '%' + ? + '%') OR (Cognome LIKE '%' + ? + '%') OR (City LIKE '%' + ? + '%') OR (DatadiNascita = ?) OR (DataDiLaurea = ?) OR (Voto = ?) OR (Settore = ?)">
<SelectParameters>
<asp:ControlParameter ControlID="DDJobTitle"
Name="Titolo" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="TBName"
Name="Nome" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TBSurname"
Name="Cognome" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TBCity"
Name="City" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="DDYearBirth"
Name="DatadiNascita" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DDYearLaurea"
Name="DataDiLaurea" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DDVoto"
Name="Voto" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DDDepartment"
Name="Settore" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>


Nel codice VB del bottone ho messo:
Gridview1.Databind()


ma quando premo il pulsante la Gridview non appare...appare solamente dopo aver messo qualche lettera nelle textbox e qualche valore nelle DDL..quindi pensavo ad un problema con i valori NULL....

Qualcuno saprebbe aiutarmi??
O magari suggerirmi una guida o un tutorial per filtrare le Gridview?

Grazie mille in anticipo.

Ciao a tutti
Simone
Potresti intercettare l'evento della modifica della tua DropDownLsti in questo modo(stiamo parlando di asp.net giusto?):

protected void drpType_SelectedIndexChanged(object sender, EventArgs e)
{
refresh_grid();
 }


E poi in refresh grid effettuo il filtraggio, Id su cui selezionare i dati->p_id_type e il metodo da richiamare-> es GetData:


        private void refresh_grid() {
            if (drpType.SelectedItem != null)
            {
                ListItem lt = (ListItem)drpType.SelectedItem;

                string _value = lt.Value;

                if (_value.Equals("*"))
                {
                    objData.SelectMethod = "GetData";
                    objData.SelectParameters.Clear();

                    objData.Select();
                }
                else
                {
                    objData.SelectMethod = "GetDataByType";
                    objData.SelectParameters.Clear();
                    objData.SelectParameters.Add("p_id_type", _value);

                    objData.Select();
                }
            }
        }

In questo modo filtri i dati in base al valore presente nella tua DropDownList.

Ciao Marco

Corso SEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
Forex
13 messaggi dal 07 ottobre 2008
Grazie Marco,

ma sinceramente non capisco molto di C...
Si sto utilizzando ASP.NET e da quello che posso capire il tuo codice è una sorta di autopostback con il controllo dei valori NULL.

La cosa strana è che la query che ho riportato prima funziona in Access o nel wizard di Visual Studio...

Non riesco a capire perchè non funziona in Asp.net

Grazie mille
Ciao
Simone

La cosa strana è che la query che ho riportato prima funziona in Access o nel wizard di Visual Studio...

Non riesco a capire perchè non funziona in Asp.net

Cosa vorresti dire?scusami ma non ti seguo,

Cosa non ti funziona...?

Ti posto questo esempio credo che sia di un WebCast Su Ajax dove puoi trovare pari pari l'esempio che ti interessa:

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <h3>
        SqlDataSource</h3>
    <p>
        &nbsp;</p>
    <p>
        Seleziona un webcast
        <asp:DropDownList ID="ddlWebCast" runat="server" AutoPostBack="True" DataSourceID="SDSourceList"
            DataTextField="Title" DataValueField="WebcastID" OnDataBound="ddlWebCast_DataBound">
        </asp:DropDownList>&nbsp;
    </p>
    <p>
        &nbsp;</p>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
        <asp:GridView ID="grvRecords" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SDSource" PageSize="5" AutoGenerateDeleteButton="True" AutoGenerateSelectButton="True" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="WebcastID" GridLines="Horizontal" Width="500px" HorizontalAlign="Center">
            <Columns>
                <asp:BoundField DataField="WebcastID" HeaderText="WebcastID" InsertVisible="False"
                    ReadOnly="True" SortExpression="WebcastID" Visible="False" >
                    <ItemStyle VerticalAlign="Top" />
                </asp:BoundField>
                <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title">
                    <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
                    <HeaderStyle HorizontalAlign="Left" VerticalAlign="Top" />
                </asp:BoundField>
                <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description">
                    <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
                    <HeaderStyle HorizontalAlign="Left" VerticalAlign="Top" />
                </asp:BoundField>
                <asp:BoundField DataField="Date" DataFormatString="{0:d}" HeaderText="Date" SortExpression="Date">
                    <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
                    <HeaderStyle HorizontalAlign="Left" VerticalAlign="Top" />
                </asp:BoundField>
            </Columns>
        </asp:GridView>
            <br />
        <asp:DetailsView ID="dvRecord" runat="server" AutoGenerateRows="False" DataKeyNames="WebcastID"
            DataSourceID="SDSourceDetails" Height="50px" HorizontalAlign="Center" Width="500px" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" AutoGenerateInsertButton="True" AutoGenerateEditButton="True">
            <Fields>
                <asp:BoundField DataField="WebcastID" HeaderText="WebcastID" InsertVisible="False"
                    ReadOnly="True" SortExpression="WebcastID" />
                <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
                <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
                <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
            </Fields>
        </asp:DetailsView>
        
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="ddlWebCast" EventName="SelectedIndexChanged" />
        </Triggers>
    </asp:UpdatePanel>
    <p>
        &nbsp;</p>
        &nbsp; &nbsp;
        <asp:SqlDataSource ID="SDSourceDetails" runat="server" ConnectionString="<%$ ConnectionStrings:VMDDB %>"
            SelectCommand="SELECT [WebcastID], [Title], [Description], [Date] FROM [Webcast] WHERE ([WebcastID] = @WebcastID)" ConflictDetection="CompareAllValues" DeleteCommand="DELETE FROM [Webcast] WHERE [WebcastID] = @original_WebcastID AND [Title] = @original_Title AND [Description] = @original_Description AND [Date] = @original_Date" InsertCommand="INSERT INTO [Webcast] ([Title], [Description], [Date]) VALUES (@Title, @Description, @Date)" OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE [Webcast] SET [Title] = @Title, [Description] = @Description, [Date] = @Date WHERE [WebcastID] = @original_WebcastID AND [Title] = @original_Title AND [Description] = @original_Description AND [Date] = @original_Date" ProviderName="<%$ ConnectionStrings:VMDDB.ProviderName %>">
            <SelectParameters>
                <asp:ControlParameter ControlID="grvRecords" Name="WebcastID" PropertyName="SelectedValue"
                    Type="Int32" />
            </SelectParameters>
            <DeleteParameters>
                <asp:Parameter Name="original_WebcastID" Type="Int32" />
                <asp:Parameter Name="original_Title" Type="String" />
                <asp:Parameter Name="original_Description" Type="String" />
                <asp:Parameter Name="original_Date" Type="DateTime" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Title" Type="String" />
                <asp:Parameter Name="Description" Type="String" />
                <asp:Parameter Name="Date" Type="DateTime" />
                <asp:Parameter Name="original_WebcastID" Type="Int32" />
                <asp:Parameter Name="original_Title" Type="String" />
                <asp:Parameter Name="original_Description" Type="String" />
                <asp:Parameter Name="original_Date" Type="DateTime" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="Title" Type="String" />
                <asp:Parameter Name="Description" Type="String" />
                <asp:Parameter Name="Date" Type="DateTime" />
            </InsertParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SDSource" runat="server" ConnectionString="<%$ ConnectionStrings:VMDDB %>"
            SelectCommand="SELECT [WebcastID], [Title], [Description], [Date] FROM [Webcast] WHERE [WebcastID] LIKE @FilterWC ORDER BY [Date]" ConflictDetection="CompareAllValues" DeleteCommand="DELETE FROM [Webcast] WHERE [WebcastID] = @original_WebcastID AND [Title] = @original_Title AND [Description] = @original_Description AND [Date] = @original_Date" InsertCommand="INSERT INTO [Webcast] ([Title], [Description], [Date]) VALUES (@Title, @Description, @Date)" OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE [Webcast] SET [Title] = @Title, [Description] = @Description, [Date] = @Date WHERE [WebcastID] = @original_WebcastID AND [Title] = @original_Title AND [Description] = @original_Description AND [Date] = @original_Date" ProviderName="<%$ ConnectionStrings:VMDDB.ProviderName %>">
            <SelectParameters>
                <asp:ControlParameter Name="FilterWC" ControlID="ddlWebCast" DefaultValue="%" PropertyName="SelectedValue" />
            </SelectParameters>
            <DeleteParameters>
                <asp:Parameter Name="original_WebcastID" Type="Int32" />
                <asp:Parameter Name="original_Title" Type="String" />
                <asp:Parameter Name="original_Description" Type="String" />
                <asp:Parameter Name="original_Date" Type="DateTime" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="Title" Type="String" />
                <asp:Parameter Name="Description" Type="String" />
                <asp:Parameter Name="Date" Type="DateTime" />
                <asp:Parameter Name="original_WebcastID" Type="Int32" />
                <asp:Parameter Name="original_Title" Type="String" />
                <asp:Parameter Name="original_Description" Type="String" />
                <asp:Parameter Name="original_Date" Type="DateTime" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="Title" Type="String" />
                <asp:Parameter Name="Description" Type="String" />
                <asp:Parameter Name="Date" Type="DateTime" />
            </InsertParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SDSourceList" runat="server" ConnectionString="<%$ ConnectionStrings:VMDDB %>"
            SelectCommand="SELECT [WebcastID], [Title] FROM [Webcast]" ProviderName="<%$ ConnectionStrings:VMDDB.ProviderName %>"></asp:SqlDataSource>




Mentre nel codice della pagina:
        protected void ddlWebCast_DataBound(object sender, EventArgs e)
        {
            DropDownList ddl = (DropDownList)sender;
            ddl.Items.Insert(0, new ListItem("Tutti", "%"));
        }

Corso SEO
Libro SEO, SEM e Web Marketing
Siti Web Parma
Forex

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.