zoukankan      html  css  js  c++  java
  • 让Asp.NET的DataGrid可排序、可选择、可分页

    让Asp.NET的DataGrid可排序、可选择、可分页
    李洪根
    <form id="Form1" method="post" runat="server">
    <asp:datagrid id="dgOrder" runat="server" Height="515px" Width="718px" AutoGenerateColumns="False" AllowSorting="True" CellPadding="4" BorderWidth="1px" BorderColor="#A0ABEB" PageSize="15" BorderStyle="Solid" BackColor="White" GridLines="Vertical" ForeColor="Black" AllowPaging="True" ShowFooter="True">
    <SelectedItemStyle ForeColor="White" BackColor="Black"></SelectedItemStyle>
    <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
    <HeaderStyle HorizontalAlign="Center" ForeColor="White" BorderColor="#6876C5" BackColor="#6876C5"></HeaderStyle>
    <FooterStyle ForeColor="White" BackColor="#6876C5"></FooterStyle>
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <FONT face="">
    <asp:CheckBox id="Cb" runat="server"></asp:CheckBox></FONT>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="orderid" SortExpression="orderid" HeaderText="ID">
    <HeaderStyle Width="180px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="ShipCountry" SortExpression="ShipCountry" HeaderText="ShipCountry">
    <HeaderStyle Width="180px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="ShippedDate" SortExpression="ShippedDate" HeaderText="ShippedDate" DataFormatString="{0:d}">
    <HeaderStyle Width="180px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="Freight" SortExpression="Freight" HeaderText="Freight">
    <HeaderStyle Width="180px"></HeaderStyle>
    </asp:BoundColumn>
    <asp:BoundColumn DataField="ShipAddress" SortExpression="ShipAddress" HeaderText="ShipAddress">
    <HeaderStyle Width="480px"></HeaderStyle>
    </asp:BoundColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Center" ForeColor="Black" Position="TopAndBottom" BackColor="White" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
    </form>
    '得到数据视图,参数为要排序的列
    Private Function GetDv(ByVal strSort As String) As DataView
    '定义数据库连接
    Dim dv As DataView
    Dim CN As New SqlConnection()
    Try
    '初始化连接字符串
    CN.ConnectionString = "data source=pmserver;
    initial catalog=Northwind;persist security info=False;user id=sa;Password=sa;"
    CN.Open()
    '从NorthWind得到orders表的数据
    Dim adp As SqlDataAdapter = New SqlDataAdapter("select * from orders", CN)
    Dim ds As New DataSet()
    adp.Fill(ds)
    '得到数据视图
    dv = ds.Tables(0).DefaultView
    Catch ex As Exception
    #If DEBUG Then
    Session("Error") = ex.ToString()
    Response.Redirect("../error.aspx") '跳转程序的公共错误处理页面
    #End If
    Finally
    '关闭连接
    CN.Close()
    End Try
    '排序
    dv.Sort = strSort
    Return dv
    End Function

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Handles MyBase.Load
    If Not IsPostBack Then
    ViewState("strSort") = "orderid"
    dgOrder.DataSource = GetDv(ViewState("strSort").ToString())
    dgOrder.DataBind()
    End If
    End Sub
    '排序
    Private Sub dgOrder_SortCommand(ByVal source As Object,
    ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles dgOrder.SortCommand
    dgOrder.CurrentPageIndex = 0
    '得到排序的列
    ViewState("strSort") = e.SortExpression.ToString()
    dgOrder.DataSource = GetDv(ViewState("strSort").ToString())
    dgOrder.DataBind()
    End Sub

    '分页
    Private Sub dgOrder_PageIndexChanged(ByVal source As Object,
    ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles dgOrder.PageIndexChanged
    '得到分页的页号
    dgOrder.CurrentPageIndex = e.NewPageIndex
    dgOrder.DataSource = GetDv(ViewState("strSort").ToString())
    dgOrder.DataBind()
    End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Handles Button1.Click
    Dim item As DataGridItem
    Dim StrScript As String
    StrScript = "<script language=javascript>alert('"
    '循环表格的项,FindControl
    For Each item In Me.dgOrder.Items
    If CType(item.FindControl("cb"), System.Web.UI.WebControls.CheckBox).Checked Then
    Try
    StrScript += item.Cells(1).Text & Space(2)
    Catch ex As Exception
    End Try
    End If
    Next
    StrScript += "被选择!')</script>"
    RegisterClientScriptBlock("系统消息", StrScript)
    End Sub
  • 相关阅读:
    Sublime Text 2 && MinGW G++ On Windows
    [zz]linux IO(function open read write close)
    PHP的基本常识(1)
    helloworld.c 的一次系统旅行(1) 读书笔记
    PHP 仿博客园 个人博客(1)
    配置 .htaccess 单点入口
    仿博客园个人博客(3)基本完成
    PHP的基本常识(2)
    JQuery 获得所有表单值
    PHP 仿博客园 个人博客(2)
  • 原文地址:https://www.cnblogs.com/fuyingke/p/429197.html
Copyright © 2011-2022 走看看