CSharpStep

导航

统计

公告

2006年8月18日 #

手工建表的步骤

 1<%
 2DataTable dtblCart;
 3DataRow drowItem;
 4// Display DataTable
 5
 6// Create DataTable
 7dtblCart = new DataTable( "Cart" );
 8
 9// Create Columns
10DataColumn dcolColumn = new DataColumn( "ProductID"typeof( Int32 ) );
11dtblCart.Columns.Add( dcolColumn );
12dcolColumn = new DataColumn( "ProductName"typeofstring  ) );
13dtblCart.Columns.Add( dcolColumn );
14dcolColumn = new DataColumn( "ProductCategory"typeofstring  ) );
15dtblCart.Columns.Add( dcolColumn );
16dcolColumn = new DataColumn( "ProductPrice"typeof( Decimal ) );
17dtblCart.Columns.Add( dcolColumn );
18
19// Add Rows
20drowItem = dtblCart.NewRow();
21drowItem[ "ProductID" ] = 12;
22drowItem[ "ProductName" ] = "Anchor Steam";
23drowItem[ "ProductCategory" ] = "Beer";
24drowItem[ "ProductPrice" ] = 7.90;
25dtblCart.Rows.Add( drowItem );

26
        //Add Rows
27drowItem = dtblCart.NewRow();
28drowItem[ "ProductID" ] = 13;
29drowItem[ "ProductName" ] = "Samuel Adams";
30drowItem[ "ProductCategory" ] = "Beer";
31drowItem[ "ProductPrice" ] = 8.67;
32dtblCart.Rows.Add( drowItem );
33foreach (DataRow row in dtblCart.Rows)
34{
35    foreach (DataColumn column in dtblCart.Columns)
36    {
37        Response.Write( row[ column ]);
38    }

39}
 
40
41%>
42

posted @ 2006-08-18 15:17 NETWorker 阅读(46) 评论(0) 编辑

实现高效分页的方法

 1<script runat=server>
 2SqlConnection conNorthwind;
 3string  strSelect;
 4int intStartIndex;
 5int intEndIndex;
 6
 7void Page_Load(Object sender , EventArgs e) 
 8{
 9    SqlCommand cmdSelect;
10
11    conNorthwind = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Northwind" );
12    
13    if (! IsPostBack ) 
14    {
15        // Get  Total Pages
16        strSelect = "Select Count(*) From Products";
17        cmdSelect = new SqlCommand( strSelect, conNorthwind );
18        conNorthwind.Open();
19        dgrdProducts.VirtualItemCount = ( (int)cmdSelect.ExecuteScalar() / dgrdProducts.PageSize );
20        conNorthwind.Close();
21        BindDataGrid();
22    }

23}

24
25void BindDataGrid () 
26{
27    SqlDataAdapter dadProducts;
28    DataSet dstProducts;
29
30    intEndIndex = intStartIndex + dgrdProducts.PageSize;
31    strSelect = "Select * From Products Where ProductID > @startIndex And ProductID <= @endIndex Order By ProductID";
32    dadProducts = new SqlDataAdapter( strSelect, conNorthwind );
33    dadProducts.SelectCommand.Parameters.Add( "@startIndex", intStartIndex );
34    dadProducts.SelectCommand.Parameters.Add( "@endIndex", intEndIndex );
35    dstProducts = new DataSet();
36    dadProducts.Fill( dstProducts );
37
38    dgrdProducts.DataSource = dstProducts;
39    dgrdProducts.DataBind();
40}

41
42void dgrdProducts_PageIndexChanged( object s, DataGridPageChangedEventArgs e ) {
43    intStartIndex = ( e.NewPageIndex * dgrdProducts.PageSize );
44    dgrdProducts.CurrentPageIndex = e.NewPageIndex;
45    BindDataGrid();
46}

47
48</Script>
49
50<html>
51<head><title>DataGridCustomPaging.aspx</title></head>
52<body>
53<form Runat="Server">
54
55<asp:DataGrid
56  ID="dgrdProducts"
57  AllowPaging="True"
58  AllowCustomPaging="True"
59  PageSize="3"
60  OnPageIndexChanged="dgrdProducts_PageIndexChanged"
61  PagerStyle-Mode="NumericPages"
62  CellPadding="3"
63  Runat="Server" />
64
65</form>
66</body>
67</html>
68

使用条件:要有一个主键列(ProductID)。

posted @ 2006-08-18 10:54 NETWorker 阅读(118) 评论(0) 编辑

对DataGrid控件中的列进行排序的例子

 1<HTML>
 2    <HEAD>
 3        <title>DataGridSort.aspx</title>
 4        <script runat="server">
 5
 6void Page_Load(Object sender , EventArgs e) 
 7{
 8    if (! IsPostBack ) {
 9        BindDataGrid( "Title" );
10    }

11}

12
13void BindDataGrid( string  strSortField ) {
14    SqlConnection conPubs;
15    SqlCommand cmdSelect;
16
17    conPubs = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Pubs" );
18    
19    cmdSelect = new SqlCommand( "Select * From Titles Order By " + strSortField, conPubs );
20    conPubs.Open();
21    dgrdTitles.DataSource = cmdSelect.ExecuteReader();
22    dgrdTitles.DataBind();
23    conPubs.Close();
24}

25
26void dgrdTitles_SortCommand( object s, DataGridSortCommandEventArgs e ) {
27    BindDataGrid( e.SortExpression );
28}

29
30        </script>
31    </HEAD>
32    <body>
33        <form Runat="Server">
34            <asp:DataGrid ID="dgrdTitles" AllowSorting="True" OnSortCommand="dgrdTitles_SortCommand" CellPadding="10"
35                Runat="Server" />
36        </form>
37    </body>
38</HTML>

因为 dgrdTitles的AllowSorting="True",所有列的页眉都显示为超链列,通过点击超链列引发SortCommand,从而改变不同的绑定。

posted @ 2006-08-18 10:20 NETWorker 阅读(49) 评论(0) 编辑