【问题标题】:How can I have custom images in GridView Pagination如何在 GridView 分页中拥有自定义图像
【发布时间】:2009-10-12 19:04:26
【问题描述】:

我正在使用 VB.net 进行编码。

我的应用程序中有 GridView 控件。

<asp:GridView ID="GridView1" runat="server" CssClass="innerGridTable" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="TrainerID"
    DataSourceID="TrainerSearchDataSource">
    <Columns>
        <asp:ButtonField ButtonType="Button" ControlStyle-CssClass="Button" CommandName="SelectTrainer"
            HeaderText="Select" ShowHeader="True" Text="Select">
            <ControlStyle CssClass="Button" />
        </asp:ButtonField>
        <asp:TemplateField Visible="false" HeaderText="Trainer ID">
            <ItemTemplate>
                <asp:Label ID="lblTrainerID" runat="server" Text='<%# Bind("TrainerID") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>                           
        <asp:BoundField DataField="TrainerName" HeaderText="Trainer Name" ReadOnly="True"
            SortExpression="TrainerName" />
        <asp:BoundField DataField="Phone" HeaderText="Phone number" SortExpression="Phone" />
        <asp:BoundField DataField="Email" Visible="false" HeaderText="Email Address" SortExpression="Email" />
        <asp:BoundField DataField="Address1" Visible="false" HeaderText="Address" SortExpression="Address1" />
        <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
        <asp:BoundField DataField="PostCode" HeaderText="PostCode" SortExpression="PostCode" />
        <asp:ButtonField ButtonType="Button" ControlStyle-CssClass="Button" CommandName="Archive"
            HeaderText="Archive" ShowHeader="True" Text="Delete">
            <ControlStyle CssClass="Button" />
        </asp:ButtonField>
    </Columns>
</asp:GridView>

我希望在 GridView 分页中为“上一个”、“下一个”等自定义图像。

请提出实现此功能的选项。

谢谢。

最好的问候, 尤夫

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    GridView 有一个名为 PagerSettings 的属性。
    这就是你要找的吗?

    【讨论】:

    • 不,我想添加 First、Last、Prev、Next 按钮图像以及寻呼机设置。能否请您提供一些示例代码
    【解决方案2】:

    我使用下面的代码解决了我的问题。

    我在GridView中添加了

     <PagerStyle BackColor="LightBlue" CssClass="paginationBlk"  Height="30px" VerticalAlign="Bottom" HorizontalAlign="Right" />
                            <PagerTemplate>
                                <asp:ImageButton ID="ImageButton3" OnCommand="Paginate" CommandArgument="First" CommandName="Page" runat="server" ImageUrl="~/images/arrow-start-active.gif" />
                                <asp:ImageButton ID="ImageButton1" OnCommand="Paginate" CommandArgument="Prev" CommandName="Page" runat="server" ImageUrl="~/images/arrow-left-active.gif" />
                                Page
                                <asp:DropDownList ID="ddlPages" OnSelectedIndexChanged="ddlPages_SelectedIndexChanged" runat="server" AutoPostBack="True">
                                </asp:DropDownList>
                                of
                                <asp:Label ID="lblPageCount" runat="server"></asp:Label>
                                <asp:ImageButton ID="ImageButton2" OnCommand="Paginate" CommandArgument="Next" CommandName="Page" runat="server" ImageUrl="~/images/arrow-right-active.gif" />
                                <asp:ImageButton ID="ImageButton4" OnCommand="Paginate" CommandArgument="Last" CommandName="Page" runat="server" ImageUrl="~/images/arrow-end-active.gif" />
                            </PagerTemplate>
    

    还有我在下面的代码中添加的 CS 文件:

       Protected Sub GridView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.DataBound
            Dim gvrPager As GridViewRow
            gvrPager = GridView1.BottomPagerRow
    
            If gvrPager Is Nothing Then
                Exit Sub
            End If
            Dim ddlPages As DropDownList = CType(gvrPager.Cells(0).FindControl("ddlPages"), DropDownList)
            Dim lblPageCount As Label = CType(gvrPager.Cells(0).FindControl("lblPageCount"), Label)
    
            If ddlPages IsNot Nothing Then
                ' populate pager
                For i As Integer = 0 To GridView1.PageCount - 1
    
                    Dim intPageNumber As Integer = i + 1
                    Dim lstItem As New ListItem(intPageNumber.ToString())
    
                    If i = GridView1.PageIndex Then
                        lstItem.Selected = True
                    End If
                    ddlPages.Items.Add(lstItem)
                Next
            End If
            'populate page count
            If lblPageCount IsNot Nothing Then
                lblPageCount.Text = GridView1.PageCount.ToString()
            End If
        End Sub
        Protected Sub Paginate(ByVal sender As Object, ByVal e As CommandEventArgs)
            ' get the current page selected
            Dim intCurIndex As Integer = GridView1.PageIndex
    
            Select Case e.CommandArgument.ToString().ToLower()
                Case "first"
                    GridView1.PageIndex = 0
                    Exit Select
                Case "prev"
                    GridView1.PageIndex = intCurIndex
                    Exit Select
                Case "next"
                    GridView1.PageIndex = intCurIndex
                    Exit Select
                Case "last"
                    GridView1.PageIndex = GridView1.PageCount
                    Exit Select
            End Select
    
            ' popultate the gridview control
            'PopulateGrid()
        End Sub
        Protected Sub ddlPages_SelectedIndexChanged(ByVal sender As [Object], ByVal e As EventArgs)
            Dim gvrPager As GridViewRow = GridView1.BottomPagerRow
            Dim ddlPages As DropDownList = CType(gvrPager.Cells(0).FindControl("ddlPages"), DropDownList)
    
            GridView1.PageIndex = ddlPages.SelectedIndex
    
            ' a method to populate your grid
            'PopulateGrid()
        End Sub
    

    请查看并告诉我您的反馈。

    干杯!

    尤夫

    【讨论】:

    • 大家好,使用上面的代码,我在维护 GridView PageIndex 方面有点困难。我的意思是,我想在 Session 中维护我的 GridView PageIndex,以便如果任何记录被修改,并且当用户返回屏幕时,它将显示与他打开记录相同的页面记录。请建议等待您的回复!
    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2015-04-04
    相关资源
    最近更新 更多