https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx |
Серверные элементы управления
RadioButtonList
Группа переключателей работает так, что выбор одного элемента из группы снимает выбор с других. Этот элемент управления подходит для выбора одного правильного ответа из нескольких:
<asp:RadioButtonList id="radSample" runat="server"> <asp:ListItem id="option1" runat="server" value="Option A" /> <asp:ListItem id="option2" runat="server" value="Option B" /> <asp:ListItem id="option3" runat="server" value="Option C" /> </asp:RadioButtonList>
Свойство radSample.SelectedItem.Value показывает выбранный элемент.
На форуме RSDN каждый участник может открыть голосование по интересующему его вопросу. Вот одно из этих голосований:
<%@ Page Language="C#" %> <script runat="server"> void Page_Load() { if (Page.IsPostBack) { if( radVoting.SelectedItem==null) Message.Text = "Надо выбрать вариант"; else { Message.Text = "Спасибо за участие. Вы выбрали: " + radVoting.SelectedItem.Value; voting.Visible=false; } } } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title> Что вы думаете о сайте intuit.ru? </title> </head> <body> <br /><br /> <asp:label runat="server" ID="Question" Font- Bold="True" Font-Size="Large" ForeColor="#0000C0">Что вы думаете об онлайн-университете intuit.ru? </asp:label> <br /><br /> <form runat="server" id="voting"> <asp:RadioButtonList id="radVoting" runat="server" > <asp:ListItem value="Хороший сайт, учился там" /> <asp:ListItem value="Есть интересные курсы, причем в открытом доступе" /> <asp:ListItem value="Не бывал(а), пойду посмотрю" /> <asp:ListItem value="Посмотрел(а), записался на курсы" /> </asp:RadioButtonList> <input type="Submit" value="Проголосовать!" > <br /><br /> </form> <asp:Label id="Message" runat="server" /> </body> </html>
Ну конечно, в случае настоящего голосования нужно еще и запомнить где-то результаты. Попробуем это освоить в следующих лекциях.
CheckBoxList
Некоторые голосования предполагают возможность выбора больше одного варианта. Так же реализованы и тесты, которые вы проходите в конце лекций.
<asp:Label ID="Label1" runat="server" Text="Как реализуется связывание с данными в ваших ASP.NET 2.0 приложениях?"></asp:Label> <asp:CheckBoxList ID="CheckBoxList1" runat="server"> <asp:ListItem>На каждой страничке создаётся SqlDataSource, с ним идёт декларативное связывание.</asp:ListItem> <asp:ListItem>В проекте есть DataSet, на страничках ObjectDataSourcе'ы, и с ними декларативное связывание.</asp:ListItem> <asp:ListItem>Недекларативное связывание, запрос прописан на каждой страничке.</asp:ListItem> <asp:ListItem>Недекларативное связывание с использованием одного большого DataSet'а</asp:ListItem> </asp:CheckBoxList>
Если в CheckBoxList множество вариантов, то можно их расположить в несколько столбцов. При этом можно двигаться сверху вниз — справа налево, или наоборот. Это зависит от RepeatDirection — Horizontal или Vertical. Текст может быть расположен справа или слева от флажка.
DropDownList
Аналог этого элемента в HTML — выпадающие меню. Они задаются с помощью тегов <SELECT> и </SELECT>, между которыми находятся один или несколько тегов <OPTION>.:
<BR>Каталог <SELECT NAME="Выбор"> <OPTION>Компьютеры <OPTION>Принтеры <OPTION VALUE="Комплектующие"> Комплектующие <OPTION SELECTED>Мониторы <OPTION>Компакт-диски </SELECT>
DropDownList выдаст тот же самый код, если будет определен так:
<asp:DropDownList id="Выбор" runat="server"> <asp:ListItem> Компьютеры </asp:ListItem > <asp:ListItem >Принтеры</asp:ListItem > <asp:ListItem > Комплектующие </asp:ListItem > <asp:ListItem Selected="true"> Мониторы </asp:ListItem > <asp:ListItem > Компакт-диски</asp:ListItem > </asp:DropDownList >
Итак, если мы хотим перейти с написания страниц HTML к написанию кода ASP:
<asp:DropDownList> пишется вместо <SELECT> <asp:ListItem > вместо <OPTION>
Вместо атрибута NAME пишем атрибут id.
Вместо атрибута SELECTED пишем атрибут Selected и присваиваем ему true.
Атрибут VALUE можно задать и в HTML. Если его нет, ASP .NET генерирует его из текста ListItem:
<select name="Выбор" id="Выбор"> <option value=" Компьютеры "> Компьютеры </option> <option value="Принтеры">Принтеры</option> <option value=" Комплектующие "> Комплектующие </option> <option selected="true" value=" Мониторы "> Мониторы </option> <option value=" Компакт-диски"> Компакт-диски</option> </select>
Отличие серверных элементов управления в том, что их можно программировать на сервере и получать информацию от них тоже на сервере.
Попробуем написать такую страницу:
<%@ Page Language="C#" %> <script runat="server" language="C#"> void Page_Load() { if (Page.IsPostBack) lblMessage.Text = "Вы выбрали " + Category.SelectedItem.Value; } </script> <html xmlns=""http://www.w3.org/1999/xhtml""> <head> <title>Выбор категории товаров</title> </head> <body> <br /> <form id="Form1" runat="server"> Выберите категорию товаров<br /> <asp:DropDownList ID="Category" runat="server"> <asp:ListItem> Компьютеры </asp:ListItem> <asp:ListItem>Принтеры</asp:ListItem> <asp:ListItem> Комплектующие </asp:ListItem> <asp:ListItem Selected="true"> Мониторы </asp:ListItem> <asp:ListItem> Компакт-диски</asp:ListItem> </asp:DropDownList> <input type="Submit"> <br /> <asp:Label ID="lblMessage" runat="server" /> </form> </body> </html>
Запустите ее на выполнение, выберите "Компакт-диски" и нажмите на кнопку. На форме появится надпись "Вы выбрали Компакт-диски".