none
DropDownList控件设置了AllowPaging后,如何去掉它自身产生的分页数字(我在下方自己设置了分页提示) RRS feed

  • 问题

  • DropDownList控件设置了AllowPaging后,如何去掉它自身产生的分页数字(我在下方自己设置了分页提示),还有就是如何触发dropdownlist,让我选中了dropdownlist中的某一页后,它
    能够到我选中的那一页上去。
    • 已移动 孟宪会Moderator 2009年7月23日 13:27 (发件人:.NET Framework 一般性问题讨论区)
    2009年7月23日 2:27

答案

  • 你好,

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
        BorderColor="#73938E" BorderStyle="Solid" BorderWidth="1px" DataKeyNames="Id"
        DataSourceID="AccessDataSource2" Width="100%" AllowPaging="True"
        PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging">
        <Columns>
            //......
        </Columns>
        <PagerTemplate>
            <div style="text-align: right;">
                <asp:LinkButton ID="cmdFirstPage" runat="server" CommandName="Page" CommandArgument="First"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">首页</asp:LinkButton>
                <asp:LinkButton ID="cmdPreview" runat="server" CommandArgument="Prev" CommandName="Page"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">前页</asp:LinkButton>
                第<asp:Label ID="lblcurPage" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1      %>'></asp:Label>页/共<asp:Label
                    ID="lblPageCount" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageCount %>'></asp:Label>页
                <asp:LinkButton ID="cmdNext" runat="server" CommandName="Page" CommandArgument="Next"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">后页</asp:LinkButton>
                <asp:LinkButton ID="cmdLastPage" runat="server" CommandArgument="Last" CommandName="Page"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">尾页</asp:LinkButton>
                转<asp:TextBox ID="txtGoPage" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'
                    Width="32px" OnTextChanged="txtGoPage_TextChanged" AutoPostBack="true"></asp:TextBox>页
            </div>
        </PagerTemplate>
    </asp:GridView>



        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataBind();
        }

        protected void txtGoPage_TextChanged(object sender, EventArgs e)
        {
            GridView1.PageIndex = Int32.Parse(((TextBox)sender).Text.Trim()) - 1;
            GridView1.DataBind();
        }
    jon.valett@gmail.com
    2009年7月23日 4:05
    版主
  • protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Bind(Convert.ToInt32(DropDownList1.SelectedValue));
    }
    
    private void Bind(int fPageIndex)
    {
        GridView1.DataSource = "获取第fPageIndex的数据"; // 自动写代码来获取第N页的数据
        GridView1.DataBind();
    }

    知识改变命运,奋斗成就人生!
    2009年7月23日 3:30
    版主

全部回复

  • DropDownList 没有这个属性,你说的是否是GridView ?
    如果是 GridView 你可以不用设置这个属性,在 DropDownList 的SelectedIndexChanged 事件中自行处理分页逻辑

    知识改变命运,奋斗成就人生!
    2009年7月23日 3:02
    版主
  • 是的,是gridview控件,
       protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;
            bind();
        }
    这是源代码,我选中了dropdownlist其中的一项后,它还是显示原来的那一页。
    2009年7月23日 3:21
  • protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Bind(Convert.ToInt32(DropDownList1.SelectedValue));
    }
    
    private void Bind(int fPageIndex)
    {
        GridView1.DataSource = "获取第fPageIndex的数据"; // 自动写代码来获取第N页的数据
        GridView1.DataBind();
    }

    知识改变命运,奋斗成就人生!
    2009年7月23日 3:30
    版主
  • 你好,

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
        BorderColor="#73938E" BorderStyle="Solid" BorderWidth="1px" DataKeyNames="Id"
        DataSourceID="AccessDataSource2" Width="100%" AllowPaging="True"
        PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging">
        <Columns>
            //......
        </Columns>
        <PagerTemplate>
            <div style="text-align: right;">
                <asp:LinkButton ID="cmdFirstPage" runat="server" CommandName="Page" CommandArgument="First"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">首页</asp:LinkButton>
                <asp:LinkButton ID="cmdPreview" runat="server" CommandArgument="Prev" CommandName="Page"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">前页</asp:LinkButton>
                第<asp:Label ID="lblcurPage" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1      %>'></asp:Label>页/共<asp:Label
                    ID="lblPageCount" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageCount %>'></asp:Label>页
                <asp:LinkButton ID="cmdNext" runat="server" CommandName="Page" CommandArgument="Next"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">后页</asp:LinkButton>
                <asp:LinkButton ID="cmdLastPage" runat="server" CommandArgument="Last" CommandName="Page"
                    Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">尾页</asp:LinkButton>
                转<asp:TextBox ID="txtGoPage" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'
                    Width="32px" OnTextChanged="txtGoPage_TextChanged" AutoPostBack="true"></asp:TextBox>页
            </div>
        </PagerTemplate>
    </asp:GridView>



        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataBind();
        }

        protected void txtGoPage_TextChanged(object sender, EventArgs e)
        {
            GridView1.PageIndex = Int32.Parse(((TextBox)sender).Text.Trim()) - 1;
            GridView1.DataBind();
        }
    jon.valett@gmail.com
    2009年7月23日 4:05
    版主