使用数据源控件实现分页

1 实现将student中的所有信息在一个模板页上显示,格式参考课件中的图片。并实现编辑功能。

新建DataSet1.xsd,再将ObjectDataSource1配置数据源

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DeleteMethod="Delete" InsertMethod="Insert"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="_12_06.DataSet1TableAdapters.studentTableAdapter"
UpdateMethod="Update">
<DeleteParameters>
<asp:Parameter Name="Original_sid" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="sname" Type="String" />
<asp:Parameter Name="classid" Type="Int32" />
<asp:Parameter Name="sex" Type="String" />
<asp:Parameter Name="age" Type="Byte" />
<asp:Parameter Name="isking" Type="Boolean" />
<asp:Parameter Name="photo" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="sname" Type="String" />
<asp:Parameter Name="classid" Type="Int32" />
<asp:Parameter Name="sex" Type="String" />
<asp:Parameter Name="age" Type="Byte" />
<asp:Parameter Name="isking" Type="Boolean" />
<asp:Parameter Name="photo" Type="String" />
<asp:Parameter Name="Original_sid" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>

<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="sid" DataSourceID="ObjectDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table style="width:300px;border:1px solid black;">
<tr style="border:2px solid blue;">
<td align="center"> <%#Eval("sname")%></td>
</tr>

<tr>
<td align="center"><asp:Image Width="100px" Height="100px" ID="Image1" runat="server" ImageUrl='<%#Eval("photo")%>'/><br /></td>
</tr>

<tr>
<td align="center"> <%#Eval("sex") %>&nbsp;&nbsp;&nbsp;<%#Eval("age") %></td>
</tr>
</table>
</ItemTemplate>
<EditItemTemplate>
<table style="width:300px;border:1px solid black;">
<tr style="border:2px solid blue;">
<td align="center">
姓名:<asp:TextBox ID="TextBox1" runat="server" Text=' <%#Bind("sname")%>'></asp:TextBox></td>
<%-- Eval是把字段的值读出来,只读。如果是读写字段的值用Bind,这是一个双向绑定--%>
</tr>

<tr>
<td align="center">
<%--<asp:Image Width="100px" Height="100px" ID="Image1" runat="server" ImageUrl='<%#Eval("photo")%>'/>--%>
<br />
图片名称:<asp:TextBox ID="txtImageName" runat="server" Text='<%#Bind("photo")%>'></asp:TextBox>
</td>
</tr>

<tr>
<td align="center">
性别:<asp:TextBox ID="TextBox2" runat="server" Text='<%#Bind("sex") %>'></asp:TextBox> &nbsp;&nbsp;&nbsp;
年龄:<asp:TextBox ID="TextBox3" runat="server" Text=' <%#Bind("age") %>'></asp:TextBox>
</td>
</tr>
</table>
</EditItemTemplate>
</asp:TemplateField>
<asp:ButtonField CommandName="edit" Text="编辑" />
<asp:ButtonField CommandName="update" Text="更新" />
<asp:ButtonField CommandName="delete" Text="删除" />
</Columns>
</asp:GridView>

</div>
</form>
</body>
</html>

2 将模版列功能改造成博客内容列表, 并使完成分页 (使用分页模板完成,显示上一页,下一页,第一页,最后一页,和当前第x页,共y页 。)

前台

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:studentConnectionString %>"
DeleteCommand="DELETE FROM [student] WHERE [sid] = @sid"
InsertCommand="INSERT INTO [student] ([sname], [classid], [sex], [age], [isking], [photo]) VALUES (@sname, @classid, @sex, @age, @isking, @photo)"
SelectCommand="SELECT * FROM [student]"
UpdateCommand="UPDATE [student] SET [sname] = @sname, [classid] = @classid, [sex] = @sex, [age] = @age, [isking] = @isking, [photo] = @photo WHERE [sid] = @sid">
<DeleteParameters>
<asp:Parameter Name="sid" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="sname" Type="String" />
<asp:Parameter Name="classid" Type="Int32" />
<asp:Parameter Name="sex" Type="String" />
<asp:Parameter Name="age" Type="Byte" />
<asp:Parameter Name="isking" Type="Boolean" />
<asp:Parameter Name="photo" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="sname" Type="String" />
<asp:Parameter Name="classid" Type="Int32" />
<asp:Parameter Name="sex" Type="String" />
<asp:Parameter Name="age" Type="Byte" />
<asp:Parameter Name="isking" Type="Boolean" />
<asp:Parameter Name="photo" Type="String" />
<asp:Parameter Name="sid" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
<br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
PageSize="3" Height="172px"
Width="437px" Xonpageindexchanging="GridView1_PageIndexChanging"
AutoGenerateColumns="False" DataKeyNames="sid" DataSourceID="SqlDataSource1"
Xonrowdatabound="GridView1_RowDataBound1" >
<Columns>
<asp:BoundField DataField="sid" HeaderText="sid" InsertVisible="False"
ReadOnly="True" SortExpression="sid" />
<asp:BoundField DataField="sname" HeaderText="sname" SortExpression="sname" />
<asp:BoundField DataField="classid" HeaderText="classid"
SortExpression="classid" />
<asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
<asp:BoundField DataField="age" HeaderText="age" SortExpression="age" />
<asp:CheckBoxField DataField="isking" HeaderText="isking"
SortExpression="isking" />
<asp:BoundField DataField="photo" HeaderText="photo" SortExpression="photo" />
</Columns>
<PagerSettings FirstPageText="|&amp;lt;" LastPageText="&amp;gt;|"
Mode="NextPreviousFirstLast" />
<PagerTemplate>
<asp:Button ID="Button1" runat="server" Text="第一页" CommandName="page"
CommandArgument="first" Height="18px" Width="46px" />
&nbsp;<asp:Button ID="Button2" runat="server" Text="上一页" CommandName="page"
CommandArgument="prev" Height="18px" Width="46px" />
&nbsp;<asp:Button ID="Button3" runat="server" Text="下一页" CommandArgument="next"
CommandName="page" Height="18px" Width="46px" />
&nbsp;<asp:Button ID="Button4" runat="server" Text="最后一页" CommandName="page"
CommandArgument="last" Height="18px" Width="66px" />
&nbsp;<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</PagerTemplate>
</asp:GridView>
</div>
</form>
</body>
</html>

后台:显示上一页,下一页,第一页,最后一页,和当前第x页,共y页

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.Pager)
{
(e.Row.Cells[0].FindControl("Label1") as Label).Text = "第" + (GridView1.PageIndex + 1).ToString() + "页,共" + GridView1.PageCount + "页";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值