2013-05-01 83 views
1

我需要使用sqldatasource(存储过程)来绑定gridview。背后SqlDataSource自定义分页

<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

sqldatasource不适合自定义分页。我必须添加另一个寻呼机部件,并像老的asp页面一样手动编写代码。 但是objectdatasource对此很容易。它将有一些参数,如StartRowIndexParameterName,MaximumRowsParameterName,SortParameterName,SelectCountMethod。它会自动传递到数据源