ASP.NET Zone

Die ASP.NET Community. Alle Antworten rund um Microsoft® Webtechnologien
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe | Impressum | ASP.NET Zone Suchplugin

in
Home Blogs Foren FAQ Communities Fotos Downloads
Werbeanzeige

Gridview with DropDown-Control in Header

Letzter Beitrag 04-28-2012, 9:08 von Thomas Ehlert. 1 Antworten.
Beiträge sortieren: Zurück Weiter
  •  04-26-2012, 16:16 224210

    Gridview with DropDown-Control in Header

    Hallo,

    ich möchte ein DropDown Control in einem GridView-Header platzieren um damit die Daten des Gridviews zu filtern.
    Ich bin schon soweit, das ich das DropDown befüllen kann (Siehe Code unten). Aber nun möchte ich auch nach Auswahl das Gridview-Filtern und komme da nicht weiter. Ich denke ich muss auch mit ViewState arbeiten um nach Pagen und Filtern auch den Zustand des DropDown zu erhalten.
    Kann mir da jemand helfen? Vielleicht hat auch jemand einen anderen Beispielcode der die Vorgehensweise zeigen kann.


     <asp:GridView ID="GridView1" CssClass="GridViewStyle" runat="server"
            OnRowCreated="GridView1_OnRowCreated">
         <Columns>
            <asp:BoundField DataField="CreateDate" HeaderText="CreateDate" ReadOnly="True" SortExpression="CreateDate" />
            <asp:TemplateField>
                <HeaderTemplate>
                    OfficeDisplayName<br />
                    <asp:DropDownList ID="dpdDisplayName2" AppendDataBoundItems="True" onselectedindexchanged="dpdDisplayName2_SelectedIndexChanged"
                             runat="server" AutoPostBack="true">
                            </asp:ListItem Text="Alle" Value="*">
                    </asp:DropDownList>
                </HeaderTemplate>
                <ItemTemplate>
                    </asp:Label ID="lblOfficeDisplayName" runat="server" Text='<%# bind("OfficeDisplayName")%>'>
                </ItemTemplate>
            </asp:TemplateField>
               
        </Columns>
        <FooterStyle CssClass="GridViewFooterStyle" />
        <RowStyle CssClass="GridViewRowStyle" />
        <SelectedRowStyle CssClass="GridViewSelectedRowStyle" />
        <PagerStyle CssClass="GridViewPagerStyle" />
        <AlternatingRowStyle CssClass="GridViewAlternatingRowStyle" />
        <HeaderStyle CssClass="GridViewHeaderStyle" />
     </asp:GridView>

    protected void GridView1_OnRowCreated(object sender, GridViewRowEventArgs e)
            {
                // === Filtern befüllen
                if (e.Row.RowType == DataControlRowType.Header)
                {
                    DropDownList typeFilter = (DropDownList)e.Row.FindControl("dpdDisplayName2");
                    typeFilter.DataTextField = "OfficeDisplayName";
                    typeFilter.DataValueField = "OfficeDisplayName";
                    typeFilter.DataSource = AdminDB.getAllDisplayNames(db);
                    typeFilter.DataBind();
                }
            }

         protected void dpdDisplayName2_SelectedIndexChanged(object sender, EventArgs e)
            {
               
                var filter = dpdDisplayName2.SelectedItem.Value;  <--- Das hier funktioniert nicht. Das Header-DropDown Controll ist in diesem Context nicht bekannt
                bindGrid(filter);
            }


    Abgelegt unter: , , ,
  •  04-28-2012, 9:08 224213 Antwort zu 224210

    AW: Gridview with DropDown-Control in Header

    Hi,

    mal ins Blaue geschossen - sollte per:

    GridViewRow header=GridView1.HeaderRow;
    DropDownList selection = row.FindControl("dpdDisplayName2") as DropDownList;

    eigentlich funzen.

    HTH
    Thomas

Als RSS Feed in XML ansehen
Powered by Community Server (Commercial Edition)