Как обрабатывать методы «OnSorting» и «OnPageIndexChanging» для нескольких GridView - PullRequest
0 голосов
/ 21 февраля 2019

В настоящее время я работаю с Asp.Net WebForms и для отображения данных я использую GridViews (много GridView), все они работают, моя проблема в том, что я повторяю одни и те же методы "OnSorting" и "OnPageIndexChanging" для каждого GridView iсоздать, буквально просто скопировать и вставить, изменяя имя GridView и вызов метода DataBind.

Вот мои методы

protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
{
    try
    {
        string currentSortExpression = GridView.Attributes["CurrentSortExpression"];
        string currentSortDir = GridView.Attributes["CurrentSortDir"];
        SortDirection sortDirection = SortDirection.Ascending;
        string sortExpression = e.SortExpression;

        if (sortExpression == currentSortExpression)
        {
            if (currentSortDir == "DESC")
                sortDirection = SortDirection.Ascending;
            else
                sortDirection = SortDirection.Descending;
        }

        GridView.Attributes["CurrentSortExpression"] = sortExpression;
        GridView.Attributes["CurrentSortDir"] = (sortDirection == SortDirection.Ascending ? "ASC" : "DESC");

        GridViewDataBind();
    }
    catch (Exception ex)
    {
        Alert.ShowDefaultError(Page, ex.Message);
    }
}

protected void GridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    try
    {
        GridView.PageIndex = e.NewPageIndex;
        GridViewDataBind(false, true);
    }
    catch (Exception ex)
    {
        Alert.ShowDefaultError(Page, ex.Message);
    }
}

Единственными изменениями между GridView являются имя GridView и последний вызов метода "GridViewDataBind ()"

Есть ли лучшеспособ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...