Pager не отображается

strizzz
Дата: 10.06.2008 18:18:45
есть грид, в зависимости от выбора в дропдаунлист, к нему подключается тот или иной провайдер и биндится, происходит это на этом событие:

    protected void ListOfBooks_SelectedIndexChanged(object sender, EventArgs e)
    {
        switch (ListOfBooks.SelectedValue)
        {
            case "Clients":
                
                GridBooks.DataSource = sourceClient;
                GridBooks.DataBind();
                break;
            case "Forwarders":
                break;
            case "Suppliers":
                break;
            case "Terminals":
                break;
        }
    }

но после этого не отображается строка Pager...

ранее на вопрос изменением Headera ответили так и все заработало, а вот с Pagerом не пойму никак..

[quot pecha]делай это в RowDataBound - вот тут есть пример, где показано как добраться до Footer

protected void ProductsInCategory_RowDataBound
    (object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      ... Increment the running totals ...
    }
    else if (e.Row.RowType == DataControlRowType.Footer)
    {
      ... Display the summary data in the footer ...
    }
}

твой вариант это e.Row.RowType == DataControlRowType.Header

при
Zorina
Дата: 10.06.2008 18:24:38
экхм.. GridBooks.AllowPaging=true у вас имеется?
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

strizzz
Дата: 10.06.2008 18:32:05
да имеется... :(

    private void ClientsUpdate()
    {
        ObjectDataSource sourceBooks = new ObjectDataSource();
        sourceBooks.TypeName = "DatabaseComponent.ClientDB";
        sourceBooks.SelectMethod = "GetClients";
        sourceBooks.EnablePaging = true;
        sourceBooks.StartRowIndexParameterName = "startRowIndex";
        sourceBooks.MaximumRowsParameterName = "maximumRows";
        sourceBooks.SelectCountMethod = "CountClients";

        GridBooks.AllowPaging = true; 
        GridBooks.DataKeyNames = new string[] { "ClientID" };
        GridBooks.DataSource = sourceBooks;
        GridBooks.DataBind();  

        DataTable taskTable = new DataTable("TaskList");
        taskTable.Columns.Add("ClientID", typeof(int));
        taskTable.Columns.Add("ClientName", typeof(string));

        for (int i = 0; i < GridBooks.Rows.Count; i++)
        {
            DataRow tableRow = taskTable.NewRow();
            tableRow["ClientID"] = GridBooks.Rows[i].Cells[2].Text;
            tableRow["ClientName"] = GridBooks.Rows[i].Cells[3].Text;
            taskTable.Rows.Add(tableRow);
        }
        Session["TaskTable"] = taskTable;
        BindData(); 
    }
strizzz
Дата: 10.06.2008 18:35:12
    protected void GridBooks_RowCreated(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[2].Visible = false;
    }

причем ещё тут перестало работать, когда LinqDataSource на ObjectDataSource сменил(
Zorina
Дата: 10.06.2008 18:49:53

пример ваш полностью покажите, желательно его упростить до немогу, чтобы и другим было понятно что у вас где происходит :)
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

strizzz
Дата: 10.06.2008 18:57:49
    protected void ListOfBooks_SelectedIndexChanged(object sender, EventArgs e)
    {
        switch (ListOfBooks.SelectedValue)
        {
            case "Clients":
                Label1.Visible = true;
                ClientsUpdate();
                break;
        }
    }

    private void ClientsUpdate()
    {
        ObjectDataSource sourceBooks = new ObjectDataSource();
        sourceBooks.TypeName = "DatabaseComponent.ClientDB";
        sourceBooks.SelectMethod = "GetClients";
        sourceBooks.EnablePaging = true;
        sourceBooks.StartRowIndexParameterName = "startRowIndex";
        sourceBooks.MaximumRowsParameterName = "maximumRows";
        sourceBooks.SelectCountMethod = "CountClients";

        GridBooks.AllowPaging = true; 
        GridBooks.DataKeyNames = new string[] { "ClientID" };
        GridBooks.DataSource = sourceBooks;
        GridBooks.DataBind();  

        DataTable taskTable = new DataTable("TaskList");
        taskTable.Columns.Add("ClientID", typeof(int));
        taskTable.Columns.Add("ClientName", typeof(string));

        for (int i = 0; i < GridBooks.Rows.Count; i++)
        {
            DataRow tableRow = taskTable.NewRow();
            tableRow["ClientID"] = GridBooks.Rows[i].Cells[2].Text;
            tableRow["ClientName"] = GridBooks.Rows[i].Cells[3].Text;
            taskTable.Rows.Add(tableRow);
        }
        Session["TaskTable"] = taskTable;
        BindData(); 
    }

    private void BindData()
    {
        GridBooks.DataSource = Session["TaskTable"];
        GridBooks.DataBind();
    }

на SelectedIndexChanged вызывается ClientsUpdate(), тот в свою очередь вызывает BindData()..

есть мысль что достать Pager можно как-то так:

    protected void GridBooks_RowDataBound(object sender, GridViewRowEventArgs e)
    {

....
        else if (e.Row.RowType == DataControlRowType.Pager) 
        {

        }

    }

хотя может я не прав..
Zorina
Дата: 10.06.2008 19:11:10
и что значит "достать pager"- зачем вам его доставать? я так понимаю, для начала неплохо было бы узнать, почему он не показывается? :)
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

strizzz
Дата: 10.06.2008 19:22:21
Zorina
и что значит "достать pager"- зачем вам его доставать? я так понимаю, для начала неплохо было бы узнать, почему он не показывается? :)______________________________________
http://asp.net/learn/data-access/
Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.


тут, конечно, с вами сложно поспорить :))

лучше сначала узнать, да))
Zorina
Дата: 11.06.2008 00:04:17
"strizzz":

protected void GridBooks_RowCreated(object sender, GridViewRowEventArgs e)
{
//e.Row.Cells[2].Visible = false;
}

причем ещё тут перестало работать, когда LinqDataSource на ObjectDataSource сменил(

вы если вот эту вашу строчку закоментируете, пейджер не появится ли?
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

ShSerge
Дата: 11.06.2008 00:41:48
Зачем постить всякое дерьмо. Что, маленький примерчик не написать?