Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GridView页面结果下拉列表,动态生成页面大小?_C#_Asp.net_Gridview_Paging - Fatal编程技术网

C# GridView页面结果下拉列表,动态生成页面大小?

C# GridView页面结果下拉列表,动态生成页面大小?,c#,asp.net,gridview,paging,C#,Asp.net,Gridview,Paging,我想在gridview上创建一个动态的dropdownlist,根据行数和页面大小,每个页面上的项目都可以。我怎么能这么做?先说几句。我有一个老方法,但每次回发都会丢失第一项。 谢谢 if(e.Row.RowType==DataControlRowType.Pager) { int initialPageSize=页面大小; int pageSizeItems=5; int pageSizeDelta=初始页面大小; 字符串pagesizeleral=“Num.de resultados”; 如

我想在gridview上创建一个动态的dropdownlist,根据行数和页面大小,每个页面上的项目都可以。我怎么能这么做?先说几句。我有一个老方法,但每次回发都会丢失第一项。 谢谢

if(e.Row.RowType==DataControlRowType.Pager)
{
int initialPageSize=页面大小;
int pageSizeItems=5;
int pageSizeDelta=初始页面大小;
字符串pagesizeleral=“Num.de resultados”;
如果(行计数>初始页面大小)
{
pageSizeItems=行数/pageSizeDelta+1;
而(页面大小项>10)
{
pageSizeDelta=pageSizeDelta*2;
pageSizeItems=行数/pageSizeDelta+1;
}
DropDownList ddl=新的DropDownList();
int i=0;
如果(pageSizeDelta!=初始页面大小)
{
Add(initialPageSize.ToString());
}

对于(i=1;i),您需要提供有关您尝试过的内容的更多信息,例如发布“每次回发时都会丢失第一项的旧方法”的代码.嗨,Karl,我已经写了一些代码,第一个是在rowcreated上执行的,第二个是dropdownlist的onchange,但是发生的事情是我重写了pagesize,这是viewstate属性,我怎么做才能不丢失第一个值?谢谢!
if (e.Row.RowType == DataControlRowType.Pager)
            {
                int initialPageSize = PageSize;
                int pageSizeItems = 5;
                int pageSizeDelta = initialPageSize;
                string pageSizeLiteral = "Num. de resultados";

                if (RowCount > initialPageSize)
                {
                    pageSizeItems = RowCount / pageSizeDelta + 1;

                    while (pageSizeItems > 10)
                    {
                        pageSizeDelta = pageSizeDelta * 2;
                        pageSizeItems = RowCount / pageSizeDelta + 1;
                    }

                    DropDownList ddl = new DropDownList();
                    int i = 0;

                    if (pageSizeDelta != initialPageSize)
                    {
                        ddl.Items.Add(initialPageSize.ToString());
                    }

                    for (i = 1; i <= pageSizeItems; i++)
                    {
                        ddl.Items.Add((i * pageSizeDelta).ToString());
                    }

                    ddl.AutoPostBack = true;
                    ListItem li = ddl.Items.FindByText(this.MyGridView.PageSize.ToString());
                    if (li != null)
                    {
                        ddl.SelectedIndex = ddl.Items.IndexOf(li);
                    }

                    ddl.SelectedIndexChanged += new EventHandler(MyData_SelectedIndexChanged);
                    ddl.ID = "comboboxpager";
                    Table pagerTable = e.Row.Cells[0].Controls[0] as Table;
                    TableCell cell = new TableCell();
                    cell.Attributes.Add("class", "csspager");
                    cell.Controls.Add(new LiteralControl(pageSizeLiteral));
                    cell.Controls.Add(ddl);
                    pagerTable.Rows[0].Cells.Add(cell);
                }
            }



        protected void MyData_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.MyGridView.PageSize = int.Parse(((DropDownList)sender).SelectedValue);
            if (this.FindControl("comboboxpager") != null)
            {
                DropDownList comboboxpager = (DropDownList)this.FindControl("comboboxpager");
                comboboxpager.SelectedIndex = this.MyGridView.PageSize;
            }
            this.MyGridView.PageIndex = 0;
            PageSize = this.MyGridView.PageSize;
            DataBind(this.MyGridView);



        }