统计在线人数...

ASP.Net2.0 GridView 多列排序,显示排序图标,分页

[ 来源:不详 | 作者:不详 | 时间:2006-7-8 23:01:40 | 浏览:统计中... ]

Cells[i].Controls[0] is LinkButton)
174                {
175                    string sortOrder;
176                    int sortOrderNo;
177                    string column = ((LinkButton)dgItem.Cells[i].Controls[0]).CommandArgument;
178                    SearchSortExpression(sortColumns, column, out sortOrder, out sortOrderNo);
179                    if (sortOrderNo > 0)
180                    {
181                        string sortImgLoc = (sortOrder.Equals("ASC") ? SortAscImageUrl : SortDescImageUrl);
182
183                        if (sortImgLoc != String.Empty)
184                        {
185                            Image imgSortDirection = new Image();
186                            imgSortDirection.ImageUrl = sortImgLoc;
187                            dgItem.Cells[i].Controls.Add(imgSortDirection);
188
189                        }
190                        else
191                        {
192
193                            if (AllowMultiColumnSorting)
194                            {
195                                Literal litSortSeq = new Literal();
196                                litSortSeq.Text = sortOrderNo.ToString();
197                                dgItem.Cells[i].Controls.Add(litSortSeq);
198
199                            }
200                        }
201                    }
202                }
203            }
204
205        }
206        #endregion
207    }

第二:详尽的分页信息显示,此功能没有封装成控件形式,直接在GridView_DataBound事件中对尾页操作即可。
下面是多列排序与分页显示代码的演示

<script runat="server">
    void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
    {
        GridViewRow pagerRow = CustomersGridView.BottomPagerRow;
        DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");
        CustomersGridView.PageIndex = pageList.SelectedIndex;
    }
    void CustomersGridView_DataBound(Object sender, EventArgs e)
    {
        GridViewRow pagerRow = CustomersGridView.BottomPagerRow;
        LinkButton linkBtnFirst = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnFirst");
        LinkButton linkBtnPrev = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnPrev");
        LinkButton linkBtnNext = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnNext");
        LinkButton linkBtnLast = (LinkButton)pagerRow.Cells[0].FindControl("linkBtnLast");
        if (CustomersGridView.PageIndex == 0)
        {
            linkBtnFirst.Enabled = false;
            linkBtnPrev.Enabled = false;
        }
        else if (CustomersGridView.PageIndex == CustomersGridView.PageCount-1)
        {
            linkBtnLast.Enabled  = false;
            linkBtnNext.Enabled = false;
        }
        else if (CustomersGridView.PageCount<=0)
        {
            linkBtnFirst.Enabled = false;
            linkBtnPrev.Enabled = false;
            linkBtnNext.Enabled = false;
            linkBtnLast.Enabled = false;
        }
        DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");
        Label pageLabel = (Label)pagerRow.Cells[0].FindControl("CurrentPageLabel");
        if (pageList != null)
        {
            for (int i = 0; i < CustomersGridView.PageCount; i++)
            {
                int pageNumber = i + 1;
                ListItem item = new ListItem(pageNumber.ToString() + "/" + CustomersGridView.PageCount.ToString(), pageNumber.ToString());
                if (i == CustomersGridView.PageIndex)
                {
                    item.Selected = true;
                }
                pageList.Items.Add(item);
            }
        }
        if (pageLabel != null)
        {
            int currentPage = CustomersGridView.PageIndex + 1;
            pageLabel.Text = "当前页: " + currentPage.ToString() +
              " / " + CustomersGridView.PageCount.ToString();
        }
    }
</script>
<html>
<body>
    <form id="Form1" runat="server">
        <h3>
            GridView PagerTemplate Example</h3>
        <asp:WebGridView ID="CustomersGridView" DataSourceID="CustomersSqlDataSource" AutoGenerateColumns="true"
            AllowPaging="true" OnDataBound="CustomersGridView_DataBound" SortAscImageUrl="~\images\arrow-up.gif" SortDescImageUrl="~\images\arrow-down.gif" runat="server" AllowSorting="True" Width="723px">
            <PagerStyle ForeColor="Blue" BackColor="LightBlue" />
            <PagerTemplate>
                <table width="100%">
                    <tr>
                        <td width="70%">
                            <asp:Label ID="MessageLabel" ForeColor="Blue" Text="页码:" runat="server" />
                            <asp:DropDownList ID="PageDropDownList" AutoPostBack="true" OnSelectedIndexChanged="PageDropDownList_SelectedIndexChanged"
                                runat="server" />
                            <asp:LinkButton CommandName="Page" CommandArgument="First" ID="linkBtnFirst" runat="server">首页</asp:LinkButton>
                            <asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="linkBtnPrev" runat="server">上一页</asp:LinkButton>
                            <asp:LinkButton CommandName="Page" CommandArgument="Next" ID="linkBtnNext" runat="server">下一页</asp:LinkButton>
                            <asp:LinkButton CommandName="Page" CommandArgument="Last" ID="linkBtnLast" runat="server">末页</asp:LinkButton>
                        </td>
                        <td width="70%" align="right">
                            <asp:Label ID="CurrentPageLabel" ForeColor="Blue" runat="server" />
                        </td>
                    </tr>
                </table>
            </PagerTemplate>
       </asp:WebGridView>
        <asp:SqlDataSource ID="CustomersSqlDataSource" SelectCommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
            ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server">
        </asp:SqlDataSource>
    </form>
</body>
</html>

上一页  [1] [2] 

共有0人参与评价,平均得分:0分
评论内容只代表网友观点,与本站立场无关! 查看完整内容
   

当前在线人数
QQ:748838 MSN:allen_xia#msn.com E-mail:allenxia666#126.com QQ群:站长联盟北方区-北京(28200145) 站长联盟南方区-上海(67713522)