В Asp.net для предотвращения пересылки страницы при нажатии кнопки используйте функцию preventDefault ()
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>WebForm1</title>
<script src="js/jquery-2.2.2.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$("#btnshow").click(function (e) {
e.preventDefault();
$("#Label1").show();
});
$("#btnhide").click(function (e) {
e.preventDefault();
$("#Label1").hide();
})
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="btnshow" runat="server" Text="Show" />
<asp:Button ID="btnhide" runat="server" Text="Hide" />
</form>
</body>
</html>
Если вы хотите, чтобы элементы были смежными, вы можете использовать старую добрую 2-кратную динамическую конструкцию массива:
// allocate a dynamic array
NonMoveable *mv = std::allocator<NonMoveable>().allocate(args.size());
// use inplace new to construct the NonMoveable elements
for (unsigned int i = 0; i < args.size(); i++) {
new(mv + i) NonMoveable(args[i], additional_arg);
}
... // use the dynamic array
// Explicitely delete the elements
for (unsigned int i = 0; i < args.size(); i++) {
mv[i].~NonMoveable();
}
// and de-allocate
std::allocator<NonMoveable>().deallocate(mv, args.size());
Это скорее C-ish, но удовлетворяет смежным требованиям. Конечно, это должно быть заключено в специальный контейнер, чтобы обеспечить автоматическое уничтожение и удаление при уничтожении контейнера.
Вы можете:
vector<unique_ptr<T>>
или vector<optional<T>>
или vector<some_other_defer_storage_mechanism<T>>
вместо просто vector<T>
- это все типы упаковщиков, которые добавляют некоторую функциональность T
, не затрагивая [ 115] (unique_ptr<T>
делает его подвижным, optional<T>
обеспечивает построение по умолчанию, поэтому вы можете построить с правильным размером, затем emplace()
в пределах optional
и т. Д.) deque<T>
, который не требует подвижности для emplace_back
(хотя вы теряете смежность) pair<unique_ptr<T[]>, size_t>
, который просто выделяет пространство для n
T
с, а затем размещает новости на каждый из них, гарантируя, что разрушение делает правильные вещи. Это не так уж плохо для реализации - так как вы не будете изменять размер, вам нужно поддерживать минимальное количество общих операций. Какой из этих ответов самый лучший, действительно зависит.