Опубликован: 14.11.2006 | Доступ: свободный | Студентов: 5898 / 532 | Оценка: 4.18 / 3.74 | Длительность: 16:37:00
ISBN: 978-5-9556-0085-7
Лекция 9:

Элементы-потребители данных ASP .NET 2.0

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >

Так же просто добавляется возможность разбивки на страницы:

AllowPaging="True" PageSize="5"

Если не указано значение PageSize, он по умолчанию считается равным 10.

Пейджер можно настроить разнообразными способами через настройку PagerSettings, например:

<PagerSettings FirstPageText="Первая" Mode="NextPreviousFirstLast"
   LastPageText="Последняя" NextPageText="->" />

Вместо текста элементами пейджера могут служить картинки:

<PagerSettings Mode="NextPreviousFirstLast" 
        FirstPageImageUrl="~/RW_btn.gif" 
        LastPageImageUrl="~/FF_btn.gif" 
        NextPageImageUrl="~/fwd_btn.gif" 
        PreviousPageImageUrl="~/RW_btn.gif" />

Поле Comments в таблице может быть пустым, то есть его значение допускает Null. Можно задать текст, который отображается для таких значений:

<asp:BoundField DataField="Comments" HeaderText="Comments"
   SortExpression="Comments" NullDisplayText="N/A"/>

Введен также шаблон на случай, когда в источнике данных нет ни одной записи:

<asp:GridView ID="GridView1" runat="server">
 <EmptyDataTemplate> No records </EmptyDataTemplate> 
</asp:GridView>

Удаление и редактирование записей делается добавлением в контейнер < Columns > столбца

<asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />

В столбце появляются гиперссылки " Delete ", " Edit ".

Свойство ButtonType может принимать значение Image, в таком случае нужно задать путь к картинке или кнопке:

<asp:CommandField ButtonType="Image" DeleteImageUrl="~/button-
delete.gif" ShowDeleteButton="True" />
<asp:CommandField ButtonType="Button" ShowDeleteButton="True" />

До сих пор все данные отображались в виде простого текста. GridView позволяет настраивать столбцы, чтобы в них появлялись различные элементы управления. Например, если в источнике данных есть булевское поле, то GridView будет показывать Checkbox.

Типы колонок те же, что и в DataGrid, и к ним прибавилось 2 новых типа:

CheckBoxField — в каждой строке выводится флажок CheckBox.

ImageField позволяет выводить картинку, если в поле хранится путь к ней.

HyperLinkField — аналог HyperLinkColumn в DataGrid. Его можно использовать для передачи параметров QueryStringParameter, чтобы в результате выводить отфильтрованную информацию. На странице CustomersByCountry находится источник данных, знакомый по "Работа с базами данных (продолжение). Элементы-источники данных (Data Source Controls)" .

<asp:SqlDataSource ID="SqlDataSource4" runat="server" 
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString 
%>"
    SelectCommand="SELECT * FROM [Customers] where @Country 
is null or Country = @Country"
 ProviderName="<%$ 
ConnectionStrings:NorthwindConnectionString.ProviderName %>" 
CancelSelectOnNullParameter="False">
 <SelectParameters> 
        <asp:QueryStringParameter Name="Country" 
QueryStringField="Country" /> 
   </SelectParameters>
</asp:SqlDataSource>

К нему привязан GridView с полем типа HyperLinkField:

<asp:GridView ID="GridView1" runat="server" 
DataSourceID="SqlDataSource4" 
OnRowUpdating="GridView1_RowUpdating"
    OnRowDataBound="GridView1_RowDataBound" 
OnRowUpdated="GridView1_RowUpdated"
    AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="CompanyName" 
HeaderText="CompanyName" SortExpression="CompanyName" />
        <asp:BoundField DataField="ContactName" 
HeaderText="ContactName" SortExpression="ContactName" />
        <asp:BoundField DataField="ContactTitle" 
HeaderText="ContactTitle" SortExpression="ContactTitle" />
        <asp:BoundField DataField="Address" HeaderText="Address" 
SortExpression="Address" />
        <asp:BoundField DataField="City" HeaderText="City" 
SortExpression="City" />
        <asp:HyperLinkField HeaderText="Country" 
DataNavigateUrlFields="Country" 
DataNavigateUrlFormatString="~/CustomersByCountry.aspx?coun-
try={0}"
        DataTextField="Country" />
    </Columns>
</asp:GridView>
<asp:HyperLink ID="HyperLink1" runat="server" 
NavigateUrl="~/CustomersByCountry.aspx">View all</asp:HyperLink>
< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Алексей Савельев
Алексей Савельев

https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx

Денис Прокофьев
Денис Прокофьев

Везде написано, что это самый независимый и простой в использовании навигационный элемент управления, что он работает сразу с web.sitemap и не требует определения SiteMapDataSource.

Моя карта сайта состоит из двух страниц, вложенных друг в друга. asp:Menu, asp:TreeView отбображаются как ожидалось, а вот asp:SiteMapPath - нет. Он не виден нигде. Однако на его месте формируется разметка: <span id="SiteMapPath1"><a href="#SiteMapPath1_SkipLink" style="position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;">Проход по ссылкам навигации</a><a id="SiteMapPath1_SkipLink"></a></span> - т.е. элемент отрабатывает.

В словах xHTML это выглядит так: <asp:SiteMapPath ID="SiteMapPath1" runat="server" />. Причем не важно - внутри тега form или снаружи - всегда одинаково.

Т.к. другие нав. ЭУ работают через простой источник данных без ошибок, делаю вывод - карта составлена правильно. ИД: <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

Карта: <?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/L11_1_simplePage.aspx" title="Страница 1"  description="Простая страница 1." >
    <siteMapNode url="~/L11_1SimplePage2.aspx" title="Страница 2"  description="Простая страница 2" />
  </siteMapNode>
</siteMap>

Почему так происходит? Вроде делаю все по примерам. VS Community 2015. NetFramework в проекте: v4.0.30319