Хорошо, так что полный пример использования SqlDataSource (как упомянуто Кендрик ):
Сначала вам нужно собрать параметры из вашего запроса, который выглядит как выуже где-то в текстовом поле.Примерно так:
<asp:Label ID="lblLastName" runat="server" AssociatedControlID="tbLastName" Text="Last Name" ClientIDMode="Static" />
<asp:TextBox ID="tbLastName" runat="server" ClientIDMode="Static" />
<asp:Button ID="btnSearch" runat="server" ClientIDMode="Static" Text="Search" />
Теперь нам нужно вывести ваш сырой встроенный SQL из кода и перенести его в SqlDataSource.Мы также хотим избавиться от потенциальной SQL-инъекции , которая есть в вашем запросе, с помощью взамен параметризованного запроса :) Для этого нам нужно подключить наш TextBox кпараметр, но, к счастью, элементы управления DataSource позволяют нам делать это без какого-либо кода, используя SelectParameters .
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ContactManagerConnectionString %>"
SelectCommand="SELECT LastName + ', ' + FirstName + ' ' + MiddleInitial AS 'Name', UserName AS 'User Name', StreetAddress FROM CustomersMaster WHERE (LastName LIKE '%' + @SearchText + '%')">
<SelectParameters>
<asp:ControlParameter ControlID="tbLastName" ConvertEmptyStringToNull="true"
Name="SearchText" PropertyName="Text" DbType="String" />
</SelectParameters>
</asp:SqlDataSource>
После того, как эти две части на месте, это просто вопрос настройки вашей сеткитак, как вы хотите, и установите для свойства AllowPaging значение true.
<asp:GridView runat="server" AllowPaging="True" DataSourceID="SqlDataSource1"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True"
SortExpression="Name" />
<asp:BoundField DataField="User Name" HeaderText="User Name"
SortExpression="User Name" />
<asp:BoundField DataField="StreetAddress" HeaderText="StreetAddress"
SortExpression="StreetAddress" />
</Columns>
</asp:GridView>
VOILA!
Пейджинг без кода *
* Стоит отметитьчто это довольно плохо с точки зрения оптимизации, поскольку вся работа по подкачке выполняется на веб-сервере.Чтобы действительно сделать это эффективным, вы бы хотели использовать некоторые страницы на уровне базы данных.В противном случае вы будете возвращать каждую запись каждый раз.