Не используйте значения, чтобы проверить, является ли элемент первым или последним, используйте индексы, а также проверьте nullptr. Ваш код потерпит неудачу в случаях, подобных [30,30,30]
public static int[] sumNeighbours(int[] values) {
if (null == values)
return null;
int[] list = new int[values.length];
for (int i=0; i<values.length; i++) {
if (values.length > 1) {
if (i == 0) {
list[i] = values[i] + values[i+1];
}
else if (i == values.length-1) {
list[i] = values[i] + values[i-1];
}
else {
list[i] = values[i] + values[i-1] + values[i+1];
}
}
else {
list [i] = values[i];
}
}
return list;
}
Имейте свой JavaScript, возвращают false, когда он сделан.
<asp:button runat="server".... OnClientClick="myfunction(); return false;" />
YourButton.Attributes.Add("onclick", "return false");
или
<asp:button runat="server" ... OnClientClick="return false" />
Вы не говорите, какую версию платформы.NET Вы используете.
Если Вы используете v2.0 или больше, что Вы могли бы использовать свойство OnClientClick для выполнения функции JavaScript, когда onclick событие кнопки генерируется.
Все, что необходимо сделать для предотвращения появления обратной передачи сервера, является возвратом false
от вызванной функции JavaScript.
Другие правы, что Вам нужен Ваш обратный вызов для возвращения false; однако я хотел бы добавить, что выполнение его путем установки onclick является ужасным старым способом сделать вещи. Я рекомендовал бы читать о незаметном JavaScript. Пользование библиотекой как jQuery могло сделать Вашу жизнь легче, и HTML менее двойной к Вашему JavaScript (и jQuery поддерживал Microsoft теперь!)