如何使用存储过程实现 Gridview 自定义分页? [英] How to implement Gridview Custom paging using Stored Procedure?

查看:20
本文介绍了如何使用存储过程实现 Gridview 自定义分页?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以将我重定向到您自己的博客链接或任何其他链接,以解释有关如何使用存储过程实现 gridview 自定义分页的完整教程吗?

我在 google 中的搜索给了我 2006 年的旧文章.现在我使用的是 asp.net 3.5 和 c#.

解决方案

.aspx 页面

 <asp:DropDownList ID="ddlSelector" AutoPostBack="true" runat="server"onselectedindexchanged="ddlSelector_SelectedIndexChanged" ><asp:ListItem>员工</asp:ListItem><asp:ListItem>客户</asp:ListItem></asp:DropDownList><asp:Button ID="btnSearch" runat="server" onclick="btnSearch_Click" Text="Search"/><br/><表格><tr><td class="txtclmn">名字:</td><td><asp:TextBox ID="txtFname" runat="server"></asp:TextBox></td><td class="txtclmn">姓氏:</td><td><asp:TextBox ID="txtLname" runat="server"></asp:TextBox></td></tr><tr><td class="txtclmn">中间名:</td><td><asp:TextBox ID="txtMname" runat="server"></asp:TextBox></td><td class="txtclmn">电话号码:</td><td><asp:TextBox ID="txtPhone" runat="server"></asp:TextBox></td></tr><tr><td class="txtclmn">电子邮件地址:</td><td><asp:TextBox ID="txtEmail" runat="server"></asp:TextBox></td><td class="txtclmn"></td><td></td></tr><div runat="server" id="empCriteria"><表><tr><td class="txtclmn"><asp:Label ID="lblHdate" runat="server" Text="雇用日期:"></asp:Label></td><td><asp:TextBox ID="txtHMonth" runat="server" MaxLength="2" CssClass="input2char"></asp:TextBox><asp:Label ID="lblHdash1" runat="server" Text="-"></asp:Label><asp:TextBox ID="txtHDay" runat="server" MaxLength="2" CssClass="input2char"></asp:TextBox><asp:Label ID="lblHdash2" runat="server" Text="-"></asp:Label><asp:TextBox ID="txtHYear" runat="server" MaxLength="4" CssClass="input4char"></asp:TextBox></td><td class="txtclmn"><asp:Label ID="lblBdate" runat="server" Text="Birth Date:"></asp:Label></td><td><asp:TextBox ID="txtBMonth" runat="server" MaxLength="2" CssClass="input2char"></asp:TextBox><asp:Label ID="lblBdash1" runat="server" Text="-"></asp:Label><asp:TextBox ID="txtBDay" runat="server" MaxLength="2" CssClass="input2char"></asp:TextBox><asp:Label ID="lblBdash2" runat="server" Text="-"></asp:Label><asp:TextBox ID="txtBYear" runat="server" MaxLength="4" CssClass="input4char"></asp:TextBox></td></tr><tr><td class="txtclmn"><asp:Label ID="lblLoginId" runat="server" Text="登录 ID:"></asp:Label></td><td><asp:TextBox ID="txtLogin" runat="server"></asp:TextBox></td><td class="txtclmn"><asp:Label ID="lblJobTitle" runat="server" Text="职位名称:"></asp:Label></td><td><asp:TextBox ID="txtJobTitle" runat="server"></asp:TextBox></td></tr><tr><td class="txtclmn"><asp:Label ID="lblGender" runat="server" Text="Gender:"></asp:Label></td><td><asp:DropDownList ID="ddlGender" runat="server" style="width: 73px"><asp:ListItem Value="-1">-----------</asp:ListItem><asp:ListItem Value="M">男</asp:ListItem><asp:ListItem Value="F">女性</asp:ListItem></asp:DropDownList></td><td class="txtclmn"><asp:Label ID="lblMarStat" runat="server" Text="婚姻状况:"></asp:Label></td><td><asp:DropDownList ID="ddlMarStat" runat="server"><asp:ListItem Value="-1">-----------</asp:ListItem><asp:ListItem Value="S">单个</asp:ListItem><asp:ListItem Value="M">已婚</asp:ListItem></asp:DropDownList></td></tr><tr><td class="txtclmn"><asp:Label ID="lblActive" runat="server" Text="Active:"></asp:Label></td><td><asp:DropDownList ID="ddlActive" runat="server"><asp:ListItem Value="-1">-----</asp:ListItem><asp:ListItem Value="1">是</asp:ListItem><asp:ListItem Value="0">否</asp:ListItem></asp:DropDownList></td><td class="txtclmn"><asp:Label ID="lblSalary" runat="server" Text="Salaried:"></asp:Label></td><td><asp:DropDownList ID="ddlSalary" runat="server"><asp:ListItem Value="-1">-----</asp:ListItem><asp:ListItem Value="1">是</asp:ListItem><asp:ListItem Value="0">否</asp:ListItem></asp:DropDownList></td></tr>

<br/><br/><asp:GridView ID="gdvCust" runat="server" AllowPaging="True"AutoGenerateColumns="假"onpageindexchange="gdvCust_PageIndexChanging"><列><asp:BoundField DataField="ContactID" HeaderText="ContactID" ReadOnly="True"SortExpression="ContactID"/><asp:BoundField DataField="Title" HeaderText="Title" ReadOnly="True"SortExpression="标题"/><asp:BoundField DataField="FirstName" HeaderText="FirstName" ReadOnly="True"SortExpression="名字"/><asp:BoundField DataField="MiddleName" HeaderText="MiddleName" ReadOnly="True"SortExpression="MiddleName"/><asp:BoundField DataField="LastName" HeaderText="LastName" ReadOnly="True"SortExpression="LastName"/><asp:BoundField DataField="Suffix" HeaderText="Suffix" ReadOnly="True"SortExpression="后缀"/><asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress"ReadOnly="True" SortExpression="EmailAddress"/><asp:BoundField DataField="Phone" HeaderText="Phone" ReadOnly="True"SortExpression="电话"/><asp:ButtonField ButtonType="Button" CommandName="Edit" Text="Edit"/></列></asp:GridView><br/><asp:GridView ID="gdvEmp" runat="server" AllowPaging="True"AutoGenerateColumns="假"onpageindexchange="gdvEmp_PageIndexChanging"><列><asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" ReadOnly="True"SortExpression="员工 ID"/><asp:BoundField DataField="JobTitle" HeaderText="职位名称" ReadOnly="True"SortExpression="标题"/><asp:BoundField DataField="FirstName" HeaderText="FirstName" ReadOnly="True"SortExpression="名字"/><asp:BoundField DataField="MiddleName" HeaderText="MiddleName" ReadOnly="True"SortExpression="MiddleName"/><asp:BoundField DataField="LastName" HeaderText="LastName" ReadOnly="True"SortExpression="LastName"/><asp:BoundField DataField="Suffix" HeaderText="Suffix" ReadOnly="True"SortExpression="后缀"/><asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress"ReadOnly="True" SortExpression="EmailAddress"/><asp:BoundField DataField="Phone" HeaderText="Phone" ReadOnly="True"SortExpression="电话"/><asp:BoundField DataField="LoginID" HeaderText="LoginID" ReadOnly="True"SortExpression="登录 ID"/><asp:BoundField DataField="Title" HeaderText="Title" ReadOnly="True"SortExpression="标题"/><asp:BoundField DataField="BirthDate" HeaderText="BirthDate" ReadOnly="True"SortExpression="出生日期"/><asp:BoundField DataField="MaritalStatus" HeaderText="MaritalStatus" ReadOnly="True"SortExpression="婚姻状况"/><asp:BoundField DataField="Gender" HeaderText="Gender" ReadOnly="True"SortExpression="性别"/><asp:BoundField DataField="HireDate" HeaderText="HireDate"ReadOnly="True" SortExpression="HireDate"/><asp:CheckBoxField DataField="SalariedFlag" HeaderText="SalariedFlag"ReadOnly="True" SortExpression="SalariedFlag"/><asp:CheckBoxField DataField="CurrentFlag" HeaderText="CurrentFlag"ReadOnly="True" SortExpression="CurrentFlag"/></列></asp:GridView></表单>

代码隐藏

使用系统;使用 System.Collections.Generic;使用 System.Linq;使用 System.Web;使用 System.Web.UI;使用 System.Web.UI.WebControls;使用 System.Data;命名空间 TestProj{公共部分类搜索:System.Web.UI.Page{静态 IQueryable_conResults;//静态 IQueryable_empResults;protected void Page_Load(object sender, EventArgs e){}protected void ddlSelector_SelectedIndexChanged(object sender, EventArgs e){gdvCust.DataSource = null;gdvCust.DataBind();gdvEmp.DataSource = null;gdvEmp.DataBind();布尔标志;如果(ddlSelector.SelectedValue ==员工")标志 = 真;别的{标志 = 假;}foreach( empCriteria.Controls 中的控制 c){c.可见=标志;}}private IQueryable创建客户查询(){TestDataClassDataContext dc = new TestDataClassDataContext();var predicate = PredicateBuilder.True();var cust = 来自 dc.Individuals 中的个人在个人的 dc.Contacts 中加入联系人.ContactID 等于 contact.ContactID选择联系人;if (!string.IsNullOrEmpty(txtLname.Text))predicate = predicate.And( e => e.LastName.Contains(txtLname.Text));if (!string.IsNullOrEmpty(txtFname.Text))predicate = predicate.And(e => e.FirstName.Contains(txtFname.Text));if (!string.IsNullOrEmpty(txtMname.Text))predicate = predicate.And(e => e.MiddleName.Contains(txtMname.Text));if (Utility.IsValidPhone(txtPhone.Text))predicate = predicate.And(e => e.Phone.Contains(txtPhone.Text));if (Utility.IsValidEmailAddress(txtEmail.Text))predicate = predicate.And(e => e.EmailAddress.Contains(txtEmail.Text));var 结果 = cust.Where(谓词);返回结果;}//私有无效CreateEmpQuery()//{//TestDataClassDataContext dc = new TestDataClassDataContext();//var emp = from c in dc.Contacts//来自 dc.Employees 中的 e//其中 c.ContactID == e.ContactID//选择新的//{//FirstName = c.FirstName,LastName = c.LastName, MiddleName =c.MiddleName, Phone = c.Phone,//EmailAddress = c.EmailAddress//};//var predicate = PredicateBuilder.True<>();//if (!string.IsNullOrEmpty(txtLname.Text))//predicate = predicate.And(e => e.LastName.Contains(txtLname.Text));//if (!string.IsNullOrEmpty(txtFname.Text))//predicate = predicate.And(e => e.FirstName.Contains(txtFname.Text));//if (!string.IsNullOrEmpty(txtMname.Text))//predicate = predicate.And(e => e.MiddleName.Contains(txtMname.Text));//如果 (Utility.IsValidPhone(txtPhone.Text))//predicate = predicate.And(e => e.Phone.Contains(txtPhone.Text));//如果 (Utility.IsValidEmailAddress(txtEmail.Text))//predicate = predicate.And(e => e.EmailAddress.Contains(txtEmail.Text));//var 结果 = emp.Where(谓词);//}私有无效 GetCustResults(){_conResults = CreateCustQuery();gdvCust.DataSource = _conResults;gdvCust.DataBind();}//私有无效GetEmpResults()//{//_empResults = CreateEmpQuery();//gdvEmp.DataSource = _empResults;//gdvEmp.DataBind();//}protected void gdvCust_PageIndexChanging(对象发送者,GridViewPageEventArgs e){gdvCust.PageIndex = e.NewPageIndex;gdvCust.DataSource = _conResults;gdvCust.DataBind();}//protected void gdvEmp_PageIndexChanging(object sender, GridViewPageEventArgs e)//{//gdvCust.PageIndex = e.NewPageIndex;//gdvEmp.DataSource = _empResults;//gdvEmp.DataBind();//}protected void btnSearch_Click(object sender, EventArgs e){如果(ddlSelector.SelectedValue ==客户")获取客户结果();//别的//GetEmpResults();}}}

在我转到当时使用 linq 的另一个项目之前只完成了 cust 结果,但这可能会帮助您了解让 gridview 运行所需的内容.这是使用 linq 和 AdventureWorks 作为示例数据库

现在代码的解释你需要注意的是

 <asp:GridView ID="gdvCust" runat="server" AllowPaging="True"AutoGenerateColumns="假"onpageindexchange="gdvCust_PageIndexChanging">

以及 aspx 页面上的列和绑定字段,其中 DataField = 数据库中列的名称,Header 字段是在 gridview 的列顶部标记的内容.

现在看后面的代码

private void GetCustResults(){_conResults = CreateCustQuery();gdvCust.DataSource = _conResults;gdvCust.DataBind();}//和protected void gdvCust_PageIndexChanging(对象发送者,GridViewPageEventArgs e){gdvCust.PageIndex = e.NewPageIndex;gdvCust.DataSource = _conResults;gdvCust.DataBind();}

他们从数据源和分页控件进行绑定.如果您需要更多解释,请发表评论

Can someone redirect me to your own blog link or any other link explaining complete tutorial about how to implement gridview custom paging using stored procedure?

My search in google giving me old articles from year 2006. Right now I am using asp.net 3.5 and c#.

解决方案

.aspx page

    <asp:DropDownList ID="ddlSelector" AutoPostBack="true" runat="server" 
        onselectedindexchanged="ddlSelector_SelectedIndexChanged" >
        <asp:ListItem>Employee</asp:ListItem>
        <asp:ListItem>Customer</asp:ListItem>
    </asp:DropDownList>

    <asp:Button ID="btnSearch" runat="server" onclick="btnSearch_Click" Text="Search" />

    <br />
    <table>
        <tr>
            <td class="txtclmn">
                First Name:</td>
            <td>
                <asp:TextBox ID="txtFname" runat="server"></asp:TextBox>
            </td>
            <td class="txtclmn">
                Last Name:</td>
            <td>
                <asp:TextBox ID="txtLname" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="txtclmn">
                Middle Name:</td>
            <td>
                <asp:TextBox ID="txtMname" runat="server"></asp:TextBox>
            </td>
            <td class="txtclmn">
                Phone Number:</td>
            <td>
                <asp:TextBox ID="txtPhone" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="txtclmn">
                Email Address:</td>
            <td>
                <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
            </td>
            <td class="txtclmn">
            </td>
            <td>
            </td>

        </tr>

    </table>
    <div runat="server" id="empCriteria">
    <table >
        <tr>
            <td class="txtclmn">
                <asp:Label ID="lblHdate" runat="server" Text="Hire Date:"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtHMonth" runat="server" MaxLength="2" CssClass="input2char"></asp:TextBox>
                <asp:Label ID="lblHdash1" runat="server" Text="-"></asp:Label>
                <asp:TextBox ID="txtHDay" runat="server" MaxLength="2" CssClass="input2char"></asp:TextBox>
                <asp:Label ID="lblHdash2" runat="server" Text="-"></asp:Label>
                <asp:TextBox ID="txtHYear" runat="server" MaxLength="4" CssClass="input4char"></asp:TextBox>
            </td>
            <td class="txtclmn">
                <asp:Label ID="lblBdate" runat="server" Text="Birth Date:"></asp:Label>
                </td>
            <td>
                <asp:TextBox ID="txtBMonth" runat="server"  MaxLength="2" CssClass="input2char"></asp:TextBox>
                <asp:Label ID="lblBdash1" runat="server" Text="-"></asp:Label>
                <asp:TextBox ID="txtBDay" runat="server"  MaxLength="2" CssClass="input2char"></asp:TextBox>
                <asp:Label ID="lblBdash2" runat="server" Text="-"></asp:Label>
                <asp:TextBox ID="txtBYear" runat="server" MaxLength="4" CssClass="input4char"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="txtclmn">
                <asp:Label ID="lblLoginId" runat="server" Text="Login ID:"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtLogin" runat="server"></asp:TextBox>
            </td>
            <td class="txtclmn">
                <asp:Label ID="lblJobTitle" runat="server" Text="Job Title:"></asp:Label></td>
            <td>
                <asp:TextBox ID="txtJobTitle" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="txtclmn">
                <asp:Label ID="lblGender" runat="server" Text="Gender:"></asp:Label>
            </td>
            <td>
                <asp:DropDownList ID="ddlGender" runat="server" style="width: 73px">
                    <asp:ListItem Value="-1">-----------</asp:ListItem>
                    <asp:ListItem Value="M">Male</asp:ListItem>
                    <asp:ListItem Value="F">Female</asp:ListItem>
                </asp:DropDownList>
            </td>
            <td class="txtclmn">
                <asp:Label ID="lblMarStat" runat="server" Text="Marital Status:"></asp:Label>
            </td>
            <td>
                <asp:DropDownList ID="ddlMarStat" runat="server">
                    <asp:ListItem Value="-1">-----------</asp:ListItem>
                    <asp:ListItem Value="S">Single</asp:ListItem>
                    <asp:ListItem Value="M">Married</asp:ListItem>
                </asp:DropDownList>
            </td>
        </tr>
        <tr>
            <td class="txtclmn">
                <asp:Label ID="lblActive" runat="server" Text="Active:"></asp:Label>
            </td>
            <td>
                <asp:DropDownList ID="ddlActive" runat="server">
                    <asp:ListItem Value="-1">-----</asp:ListItem>
                    <asp:ListItem Value="1">Yes</asp:ListItem>
                    <asp:ListItem Value="0">No</asp:ListItem>
                </asp:DropDownList>
            </td>
            <td class="txtclmn">
               <asp:Label ID="lblSalary" runat="server" Text="Salaried:"></asp:Label></td>
            <td>
                <asp:DropDownList ID="ddlSalary" runat="server">
                    <asp:ListItem Value="-1">-----</asp:ListItem>
                    <asp:ListItem Value="1">Yes</asp:ListItem>
                    <asp:ListItem Value="0">No</asp:ListItem>
                </asp:DropDownList>
            </td>
        </tr>
    </table>
    </div>
    <br />
    <br />
    <asp:GridView ID="gdvCust" runat="server" AllowPaging="True"
        AutoGenerateColumns="False" 
        onpageindexchanging="gdvCust_PageIndexChanging">
        <Columns>
            <asp:BoundField DataField="ContactID" HeaderText="ContactID" ReadOnly="True" 
                SortExpression="ContactID" />
            <asp:BoundField DataField="Title" HeaderText="Title" ReadOnly="True" 
                SortExpression="Title" />
            <asp:BoundField DataField="FirstName" HeaderText="FirstName" ReadOnly="True" 
                SortExpression="FirstName" />
            <asp:BoundField DataField="MiddleName" HeaderText="MiddleName" ReadOnly="True" 
                SortExpression="MiddleName" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" ReadOnly="True" 
                SortExpression="LastName" />
            <asp:BoundField DataField="Suffix" HeaderText="Suffix" ReadOnly="True" 
                SortExpression="Suffix" />
            <asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" 
                ReadOnly="True" SortExpression="EmailAddress" />
            <asp:BoundField DataField="Phone" HeaderText="Phone" ReadOnly="True" 
                SortExpression="Phone" />
            <asp:ButtonField ButtonType="Button" CommandName="Edit" Text="Edit" />
        </Columns>
    </asp:GridView>


    <br />
    <asp:GridView ID="gdvEmp" runat="server" AllowPaging="True"
        AutoGenerateColumns="False" 
        onpageindexchanging="gdvEmp_PageIndexChanging">
        <Columns>
            <asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" ReadOnly="True" 
                SortExpression="EmployeeID" />
            <asp:BoundField DataField="JobTitle" HeaderText="Job Title" ReadOnly="True" 
                SortExpression="Title" />
            <asp:BoundField DataField="FirstName" HeaderText="FirstName" ReadOnly="True" 
                SortExpression="FirstName" />
            <asp:BoundField DataField="MiddleName" HeaderText="MiddleName" ReadOnly="True" 
                SortExpression="MiddleName" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" ReadOnly="True" 
                SortExpression="LastName" />
            <asp:BoundField DataField="Suffix" HeaderText="Suffix" ReadOnly="True" 
                SortExpression="Suffix" />
            <asp:BoundField DataField="EmailAddress" HeaderText="EmailAddress" 
                ReadOnly="True" SortExpression="EmailAddress" />
            <asp:BoundField DataField="Phone" HeaderText="Phone" ReadOnly="True" 
                SortExpression="Phone" />
            <asp:BoundField DataField="LoginID" HeaderText="LoginID" ReadOnly="True" 
                SortExpression="LoginID" />
            <asp:BoundField DataField="Title" HeaderText="Title" ReadOnly="True" 
                SortExpression="Title" />
            <asp:BoundField DataField="BirthDate" HeaderText="BirthDate" ReadOnly="True" 
                SortExpression="BirthDate" />
            <asp:BoundField DataField="MaritalStatus" HeaderText="MaritalStatus" ReadOnly="True" 
                SortExpression="MaritalStatus" />
            <asp:BoundField DataField="Gender" HeaderText="Gender" ReadOnly="True" 
                SortExpression="Gender" />
            <asp:BoundField DataField="HireDate" HeaderText="HireDate" 
                ReadOnly="True" SortExpression="HireDate" />
            <asp:CheckBoxField DataField="SalariedFlag" HeaderText="SalariedFlag" 
                ReadOnly="True" SortExpression="SalariedFlag" />
            <asp:CheckBoxField DataField="CurrentFlag" HeaderText="CurrentFlag" 
                ReadOnly="True" SortExpression="CurrentFlag" />
        </Columns>
    </asp:GridView>


</form>

codebehind

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace TestProj
{
public partial class Search : System.Web.UI.Page
{

    static IQueryable<Contact> _conResults;
    //static IQueryable<EmpContact> _empResults;
    protected void Page_Load(object sender, EventArgs e)
    {


    }


    protected void ddlSelector_SelectedIndexChanged(object sender, EventArgs e)
    {
        gdvCust.DataSource = null;
        gdvCust.DataBind();
        gdvEmp.DataSource = null;
        gdvEmp.DataBind();
        bool flag;
        if (ddlSelector.SelectedValue == "Employee")
            flag = true;
        else
        {               
            flag = false;
        }
        foreach( Control c in empCriteria.Controls)
        {
            c.Visible = flag;
        }
    }
    private IQueryable<Contact> CreateCustQuery()
    {
       TestDataClassDataContext dc = new TestDataClassDataContext();
        var predicate = PredicateBuilder.True<Contact>();
        var cust = from individual in dc.Individuals
                  join contact in dc.Contacts on individual.ContactID equals contact.ContactID
                  select contact;
        if (!string.IsNullOrEmpty(txtLname.Text))
            predicate = predicate.And( e => e.LastName.Contains(txtLname.Text));
        if (!string.IsNullOrEmpty(txtFname.Text))
            predicate = predicate.And(e => e.FirstName.Contains(txtFname.Text));
        if (!string.IsNullOrEmpty(txtMname.Text))
            predicate = predicate.And(e => e.MiddleName.Contains(txtMname.Text));
        if (Utility.IsValidPhone(txtPhone.Text))
            predicate = predicate.And(e => e.Phone.Contains(txtPhone.Text));
        if (Utility.IsValidEmailAddress(txtEmail.Text))
            predicate = predicate.And(e => e.EmailAddress.Contains(txtEmail.Text));

        var results = cust.Where(predicate);

        return results;
    }

    //private void CreateEmpQuery()
    //{
    //    TestDataClassDataContext dc = new TestDataClassDataContext();

    //    var emp = from c in dc.Contacts
    //              from e in dc.Employees
    //              where c.ContactID == e.ContactID
    //              select new 
    //              {
    //                  FirstName = c.FirstName,LastName = c.LastName, MiddleName =c.MiddleName, Phone = c.Phone,
    //                  EmailAddress = c.EmailAddress
    //              };

    //    var predicate = PredicateBuilder.True<>();
    //    if (!string.IsNullOrEmpty(txtLname.Text))
    //        predicate = predicate.And(e => e.LastName.Contains(txtLname.Text));
    //    if (!string.IsNullOrEmpty(txtFname.Text))
    //        predicate = predicate.And(e => e.FirstName.Contains(txtFname.Text));
    //    if (!string.IsNullOrEmpty(txtMname.Text))
    //        predicate = predicate.And(e => e.MiddleName.Contains(txtMname.Text));
    //    if (Utility.IsValidPhone(txtPhone.Text))
    //        predicate = predicate.And(e => e.Phone.Contains(txtPhone.Text));
    //    if (Utility.IsValidEmailAddress(txtEmail.Text))
    //        predicate = predicate.And(e => e.EmailAddress.Contains(txtEmail.Text));

    //    var results = emp.Where(predicate);


    //}

    private void GetCustResults()
    {
        _conResults = CreateCustQuery();
        gdvCust.DataSource = _conResults;
        gdvCust.DataBind();
    }

    //private void GetEmpResults()
    //{
    //    _empResults = CreateEmpQuery();
    //    gdvEmp.DataSource = _empResults;
    //    gdvEmp.DataBind();
    //}

    protected void gdvCust_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gdvCust.PageIndex = e.NewPageIndex;
        gdvCust.DataSource = _conResults;
        gdvCust.DataBind();
    }
    //protected void gdvEmp_PageIndexChanging(object sender, GridViewPageEventArgs e)
    //{
    //    gdvCust.PageIndex = e.NewPageIndex;
    //    gdvEmp.DataSource = _empResults;
    //    gdvEmp.DataBind();
    //}

    protected void btnSearch_Click(object sender, EventArgs e)
    {
        if (ddlSelector.SelectedValue == "Customer")
            GetCustResults();
        //else
            //GetEmpResults();
    }



}
}

only finished the cust results before I moved on to another project I was using linq at the time but this might help you understand what is needed to get a gridview going. this is using linq with AdventureWorks as a sample database

Explanation of code now what you need to pay attention to is the

    <asp:GridView ID="gdvCust" runat="server" AllowPaging="True"
        AutoGenerateColumns="False" 
        onpageindexchanging="gdvCust_PageIndexChanging">

and the columns and bound fields on the aspx page where DataField = Name of column in database and the Header field is what is labeled at the top of the column on the gridview.

now on the code behind look at

private void GetCustResults()
{
    _conResults = CreateCustQuery();
    gdvCust.DataSource = _conResults;
    gdvCust.DataBind();
}
 //and    
protected void gdvCust_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    gdvCust.PageIndex = e.NewPageIndex;
    gdvCust.DataSource = _conResults;
    gdvCust.DataBind();
}

they do the binding from a data source and the paging control. comment if you need some more explaination

这篇关于如何使用存储过程实现 Gridview 自定义分页?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆