ASP.NET Intellisense по сравнению с клиентскими атрибутами

Кроме того, если вы хотите сохранить ту же концепцию и сделать алгоритм «сами», есть несколько вещей, которые нужно изменить.

Во-первых, начальные значения SmallestNumber и SmallestNumber2 должны быть как можно выше, в противном случае сохраненные числа могут быть только на единицу меньше, чем ваше начальное значение. Поэтому вы можете использовать INT_MAX.

Во-вторых, второе наименьшее число необходимо установить в 2 случаях:

  • при вводе нового значения, которое является вторым наименьшим
  • , когда новое наименьшее значение равно установить, самое старое наименьшее значение становится новым вторым наименьшим.

В-третьих, здесь много ненужного кода. Вы проверяете слишком много раз, если значение не равно нулю, что вы знаете из условия while. И у вас есть дублирование кода с помощью оператора cout / cin. Который подвержен ошибкам.

Вот версия того, как это могло бы выглядеть:

    int value= INT_MAX;
    int SmallestNumber=INT_MAX;
    int SmallestNumber2=INT_MAX;


    while (value != 0) {
        if(value > SmallestNumber && value < SmallestNumber2)
        {
            SmallestNumber2 = value;
        }
        else if (value< SmallestNumber)
        {
            SmallestNumber2 = SmallestNumber;
            SmallestNumber = value;
        }
        cout << "Enter number to find the smallest and second smallest(or 0 to quit): ";
        cin >> value;
    }

    cout << "Smallest number is: " << SmallestNumber << '\n' << endl;
    cout << "Second Smallest number is: " << SmallestNumber2 << '\n' << endl;

    return 0;

пс: версия @darune является более хорошим решением.

5
задан John Saunders 25 April 2009 в 17:06
поделиться

5 ответов

Проблема в том, что intellisense для элементов управления веб-сервера не отображает события на стороне клиента, а содержит только те события, которые были вызваны на сервере. Если бы вы использовали серверный элемент управления HTML для той же цели, вы бы увидели события (JS на стороне клиента) в Intellisense.

Другая проблема, которую следует учитывать, - это то, что событие onclick не поддерживается для элементов option (по крайней мере, в IE, хотя Firefox это прекрасно поддерживает). Вместо этого вы должны обработать клиентское событие onchange . Пример:

<select id="htmlserverselect" runat="server" onchange="alert(this.value);">
  <option value="1">Yes</option>
  <option value="2">No</option>
</select>
2
ответ дан 14 December 2019 в 19:25
поделиться

Много раз зависит от элемента управления, с которым вы работаете, и атрибута. Я знаю, что элементы управления ASP кнопки будут показывать атрибуты onclick и onclientclick в intellisense. Возможно, ASP.NET не полностью поддерживает атрибут onClick для списка listitem (в отличие от атрибута selectedindexoted в списке / выпадающий список / и т.д. элементы управления)

2
ответ дан 14 December 2019 в 19:25
поделиться

Причина, по которой вы не видите его в intellisense, заключается в том, что «onclick» не является ASP.Net. Вы заметите, что если вы сделаете следующее:

<asp:ListItem Value="1" Text="Yes" Secret="Yes" onclick="alert('TEST1');" />
<asp:ListItem Value="0" Text="No" Secret="No" onclick="alert('TEST2');" />

Если вы посмотрите на то, что отображается в html, вы увидите атрибут «Секрет». Поэтому, хотя ASP.Net будет отображать любые введенные вами атрибуты, он будет предоставлять только intellisense для атрибутов ASP.Net.

Что касается практики кодирования, я видел и использовал «onclick» слишком много раз, чтобы сосчитать. Поэтому, хотя у пуриста могут быть проблемы с практикой, я думаю, что его можно использовать.

0
ответ дан 14 December 2019 в 19:25
поделиться

Класс ListItem не имеет свойства onclick .

Похоже, что ListItem реализует IAttributesAccessor , а также имеет коллекцию Attributes . Это задокументировано следующим образом:

Получает коллекцию пар имени и значения атрибута для ListItem, которые напрямую не поддерживаются классом.

Атрибуты, которые вы помещаете в тег таким способом, отображаются при визуализации элемента управления. Детали этого отличаются по контролю. Я экспериментировал со страницей, содержащей следующее:

<asp:DropDownList ID="_ddl1" runat="server" >
    <asp:ListItem Text="Item 1" Value="Item1" onClick="foox();" oncluck="bar(this);" />
</asp:DropDownList>
<asp:ListBox ID="_listBox1" runat="server">
    <asp:ListItem Text="Item 1" Value="Item1" onClick="foox();" oncluck="bar(this);" />
</asp:ListBox>
<asp:RadioButtonList ID="_radioList1" runat="server">
    <asp:ListItem Text="Item 1" Value="Item1" onClick="foox();" oncluck="bar(this);" />
</asp:RadioButtonList>

В случае DropDownList и ListBox оба атрибута отображаются в элементе . В случае RadioButtonList ,

1
ответ дан 14 December 2019 в 19:25
поделиться

Давайте предположим, что у нас появляется всплывающее сообщение, вызванное сеансом Тайм-аут вроде события.

Как вы должны иметь для вашего онлайн-банкинга веб приложение.

Итак, сообщение появляется чтение, что у вас мало Больше минут, чтобы завершить онлайн опыт работы с этим конкретным Защищенный сайт.

Обычно, если вы ничего не делаете об этом, в примерно в то же время потребовалось сообщение для поп, приложение будет подписать вас.

На стороне клиента у вас есть JavaScript для времени эти действия.

Теперь, давайте скажем, что кнопка, которая вас подписывает называется «btnsignout».

Если вы хотите вызвать то же действие от Линия JS, на тайм-ауте, у вас должна быть что-то подобное:

if(timeout){
;
 }

, которое будет вызвать одно и то же событие, что нажав на «btnsignout» linkbutton.

Источник

0
ответ дан 14 December 2019 в 19:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: