Works great on the initial search or reset. However, after filtering, if you try to page or sort, the filter is lost in the dataset. I believe the DataBind is not getting called. As a temp work around I've changed the OnLoad method to always DataBind, regardless of Page.IsPostBack status.
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
base.EnsureChildControls();
if (true || !Page.IsPostBack)
{
// if we have a search value then build the search
if (!string.IsNullOrEmpty(txtKeyword.Text) &&
!string.IsNullOrEmpty(cboFieldName.SelectedValue))
{
this.DataBind();
}
ExcludeFields();
}
}