Поля, не меняющиеся в Formview при перемещении по страницам - PullRequest
0 голосов
/ 18 сентября 2011

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

Я успешно подключился к базе данных, заполнил набор данных и возвратил данные при отображении веб-страницы. Проблема в том, что при переходе на новую страницу данные не изменяются в поле привязки данных.

Вот мой код:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        conn = new SqlConnection(connstr);
        ds = new DataSet();
        da = new SqlDataAdapter("call to stored proc", conn);

        try

        {
            conn.Open();
            da.Fill(ds, "m");
            FormView1.DataSource = ds;
            FormView1.DataKeyNames = new string[] { "PropKey" };
            FormView1.DataBind();
        }
        catch (Exception ex)
        {
            Result = ex.Message;
        }
        finally
        {
            conn.Close();
        }
    }

Далее, когда нажимаются кнопки пагинации, у меня есть это:

protected void FormView1_PageIndexChanging1(object sender, FormViewPageEventArgs e)
{
    FormView1.PageIndex = e.NewPageIndex;
}

Пожалуйста, помогите, Спасибо

1 Ответ

1 голос
/ 18 сентября 2011

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

protected void FormView1_PageIndexChanging1(object sender, FormViewPageEventArgs e)
{
    FormView1.PageIndex = e.NewPageIndex;
    BindFormViewData();
}

Это необходимо, поскольку FormView отображает только данные для активной записи и не хранит никаких других записей из источника данных, поэтому при изменении индекса страницы источник данных должен быть снова связан. См .: Пейджинг в элементе управления веб-сервера FormView

Из приведенной выше ссылки:

Если элемент управления FormView связан с элементом управления источником данных или с любым структура данных, которая реализует интерфейс ICollection (включая наборы данных), элемент управления получает все записи из источника данных, отображает запись для текущей страницы и отбрасывает остальные. когда пользователь переходит на другую страницу, элемент управления FormView повторяет процесс, отображая другую запись.

Надеюсь, это поможет.

...