Сортировка разрывов Gridview ModalPopUp в GridView - PullRequest
1 голос
/ 23 сентября 2011

У меня есть gridview, в котором есть кнопки ссылок, которые вызывают modalpopups и текстовые поля со значениями.Я пытаюсь реализовать сортировку для gridview, но оператор if (! Ispostback), который мне нужен для сортировки, предотвращает появление modalpopup.Он также не сортирует текстовые поля в виде сетки.Есть ли способ реализовать сортировку без использования ispostback в page_load?

Вот код для modalpopup, привязки gridview и сортировки.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["sortOrder"] = "";
            Bind_Gridview("", "");
            loadModals();
        }
    }
protected void viewModal(object sender, EventArgs e)
{
...
     mainPanel.Controls.Add(exstModal);
        mainPanel.Controls.Add(exstModalBox);
        exstModalBox.Show();
}

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        Bind_Gridview(e.SortExpression, sortOrder);
    }

public string sortOrder
    {
        get
        {
            if (ViewState["sortOrder"].ToString() == "desc")
            {
                ViewState["sortOrder"] = "asc";
            }
            else
            {
                ViewState["sortOrder"] = "desc";
            }

            return ViewState["sortOrder"].ToString();
        }
        set
        {
            ViewState["sortOrder"] = value;
        }
    }

protected void gv1_RowCommand(object sender, GridViewRowEventArgs e)
    {
...
CheckBox cb = new CheckBox();
        TextBox ca = new TextBox();
        ca.Width = 20;
        TextBox cga = new TextBox();
        cga.Width = 20;

if (e.Row.RowType == DataControlRowType.DataRow) //Foreach row in gridview
        {

    while (dr1.Read())
            {
                ca.Text = dr1["cyla"].ToString();
                cga.Text = dr1["cga"].ToString();
                checkText = dr1["completed"].ToString();
                if (checkText == "True")
                {
                    cb.Checked = true;
                }
                else
                {
                    cb.Checked = false;
                }
            }
...
            dr1.Close();
            conn1.Close();
            e.Row.Cells[6].Controls.Add(ca);
            e.Row.Cells[8].Controls.Add(cga);
            e.Row.Cells[9].Controls.Add(cb);
...
}

1 Ответ

0 голосов
/ 23 сентября 2011

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

Посмотрите второй пример на этой странице MSDN и обратите внимание, что он никогдачто-то делает вручную с помощью ViewState ... события OnSorting и OnSorted предназначены только для отображения дополнительной информации или для наложения требований:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting.aspx

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

...