SqlDataSource自定义分页

时间:2013-05-01 19:08:23

标签: sqldatasource custompaging

我需要使用sqldatasource(存储过程)来绑定gridview。

<asp:GridView ID="gvBC" runat="server" AutoGenerateColumns="False" ShowFooter="True" AllowSorting="True" AllowPaging="True" pageSize ="3" DataSourceID="dsBCSearch">
    <Columns>
        <asp:BoundField DataField="ContactID" HeaderText="ContactID" Visible="false"/>
        <asp:BoundField DataField="BldgNum" HeaderText="Bldg#" SortExpression="BldgNum" />
    </Columns>
    <EmptyDataTemplate> No Building Coordinator Found. </EmptyDataTemplate>
    <EmptyDataRowStyle HorizontalAlign="Center" /> 
</asp:GridView>
<asp:SqlDataSource ID="dsBCSearch" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnStr %>" SelectCommand="GetBC" SelectCommandType="StoredProcedure" 
SortParameterName="SortExpression"  />

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    LoadBC();
}
protected void LoadBC()
{
    dsBCSearch.SelectCommand = "GetBCwP";
    dsBCSearch.SelectParameters.Clear();

    dsBCSearch.SelectParameters.Add("LName", this.txtLNAme.Text.Trim());
    dsBCSearch.SelectParameters.Add("Active", this.chkActive.Checked.ToString());
    //dsBCSearch.SelectParameters.Add("sortExpression", this.gvBC.SortExpression);
    dsBCSearch.SelectParameters.Add("startRowIndex", this.gvBC.PageIndex.ToString());
    dsBCSearch.SelectParameters.Add("maximumRows", this.gvBC.PageSize.ToString());

    this.gvBC.DataBind();
}

现在只渲染第一页(3条记录),页脚显示没有数字。我可以在页脚中添加分页吗?

由于

1 个答案:

答案 0 :(得分:1)

sqldatasource不适合自定义分页。我必须添加另一个寻呼机部分和旧的asp页面,以手动编写代码。 但objectdatasource很容易实现。它将包含一些参数,如StartRowIndexParameterName MaximumRowsParameterName SortParameterName SelectCountMethod。它会自动传递给数据源