GridView AllowPaging на asp.net - PullRequest
       4

GridView AllowPaging на asp.net

0 голосов
/ 26 апреля 2011

У меня есть сетка, я включил подкачку и добавил обработчик событий.Все работает нормально, за исключением того, что я должен нажать каждую цифру дважды, чтобы обновить.

Ниже приведен код, который я использую для начальной загрузки, и вызов для обработчика события смены страниц

protected void Page_Load(object sender, EventArgs e)
        {

            query = "SELECT log_id, use_username AS `Username`, log_type AS `Type`, "
                + "log_description AS `Description`, DATE_FORMAT(log_date, '%d-%m-%Y') AS `Date Created`, "
                + "DATE_FORMAT(log_time, '%H:%i') AS `Time Created` FROM log l, users u "
                + "WHERE l.log_userID = u.use_id";
            new DatabaseWork().loadGrid(query, tblLog);
            if (tblLog.Rows.Count == 0)
            {
                lblNoData.Visible = true;
            }

        }

protected void tblLog_PageChanging(object sender, GridViewPageEventArgs e)
        {
            new DatabaseWork().loadGrid(query, tblLog);
            tblLog.PageIndex = e.NewPageIndex;
        }

Ниже приведен код, используемый для привязки данных к птице данных, котораявызывается из обоих методов, описанных выше

public void loadGrid(string query, GridView tblGrid)
        {
            using (DatabaseWork db = new DatabaseWork())
            {
                using (MySqlCommand cmd = new MySqlCommand(query, db.conn))
                {
                    using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
                    {

                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        tblGrid.DataSource = ds.Tables[0];
                        tblGrid.DataBind();
                    }

                }
            }

Все работает нормально, за исключением того, что каждый номер страницы нужно нажимать дважды, и я не могу понять, почему.

Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

вам нужно поставить условие обратной передачи этой страницы перед вашим запросом If(!Page.IspostBack)

protected void Page_Load(object sender, EventArgs e)
    {
      If(!Page.IspostBack)
      {
        query = "SELECT log_id, use_username AS `Username`, log_type AS `Type`, "
            + "log_description AS `Description`, DATE_FORMAT(log_date, '%d-%m-%Y') AS `Date Created`, "
            + "DATE_FORMAT(log_time, '%H:%i') AS `Time Created` FROM log l, users u "
            + "WHERE l.log_userID = u.use_id";
        new DatabaseWork().loadGrid(query, tblLog);
        if (tblLog.Rows.Count == 0)
        {
            lblNoData.Visible = true;
        }
      }
    }

Редактировать:

protected void tblLog_PageChanging(object sender, GridViewPageEventArgs e)
    {
       query = "SELECT log_id, use_username AS `Username`, log_type AS `Type`, "
        + "log_description AS `Description`, DATE_FORMAT(log_date, '%d-%m-%Y') AS `Date Created`, "
        + "DATE_FORMAT(log_time, '%H:%i') AS `Time Created` FROM log l, users u "
        + "WHERE l.log_userID = u.use_id";

        new DatabaseWork().loadGrid(query, tblLog);
        tblLog.PageIndex = e.NewPageIndex;
    }
1 голос
/ 26 апреля 2011

Полагаю, проблема в том, что Page_Load выполняется до GridView_PageChanging.

Попробуйте загрузить ваши данные, если страница загружается впервые с использованием IsPostBack свойство.

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