Wie Ein RadGrid Seite Größe Programmgesteuert, Ohne dass Eine PageSizeChanged Veranstaltung

Ich bin mit einem Telerik RadGrid mit custom paging. Mein problem ist, dass wenn ich die Seitengröße manuell, die PageSizeChanged event wird gefeuert und wirft mein code in einer Endlosschleife. Als hack habe ich ein boolescher Wert, der eingestellt ist, wenn die PageSizeChanged event gefeuert wird. Wie kann ich die Seitengröße auf ein RadGrid Steuerung ohne auslösen des PageSizeChanged Veranstaltung?

private bool PageSizeChanged
{
    get { return Convert.ToBoolean(ViewState["PageSizeChanged"]); }
    set { ViewState["PageSizeChanged"] = value; }
}

protected void RadGrid1_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
    if (!PageSizeChanged)
    {
        PageSizeChanged = true;
        RadGrid1.PageSize = e.NewPageSize;
    }

    PageSizeChanged = false;                        
    RadGrid1.Rebind();
}

UPDATE: ich habe eine Lösung, die ich jetzt mag. Ich landete entfernen der event-handler aus der Aufruf-Liste, Einstellung der Größe der Seite und dann hinzufügen das Ereignis zurück, um die Aufruf-Liste.

protected void RadGrid1_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
    RadGrid1.PageSizeChanged -= RadGrid1_PageSizeChanged;
    RadGrid1.PageIndex = 0;
    RadGrid1.PageSize = e.NewPageSize;
    RadGrid1.Rebind();
    RadGrid1.PageSizeChanged += RadGrid1_PageSizeChanged;
}
InformationsquelleAutor Halcyon | 2012-05-21
Schreibe einen Kommentar