В моем проекте Sharepoint/веб-части/веб-странице я динамически создаю элементы/элементы управления страницы с помощью C# в файле *.ascx.cs.
В файле *.ascx я использую jQuery для реагирования на события, которые происходят на странице (выборы, изменения состояний флажков и т. д.).
Мне нужно условно скрыть группы элементов управления/элементов на странице. В частности, если пользователь устанавливает определенный флажок, я могу «удалить» целые участки страницы, которые в этом сценарии к нему не относятся.
Как я могу это сделать? У меня есть эта отправная точка:
/* If the select "Yes" (they are seeking payment for themselves, as opposed to someone else), omit (invisibilize) sections 2 and 3 on the form */
$(document).on("change", '[id$=ckbxPaymentForSelf]', function () {
var ckd = this.checked;
if (ckd) {
// what now?
}
});
Я мог бы сделать это методом выдергивания волос (что было бы очень болезненно для меня, потому что у меня почти столько же волос, сколько у Авессалома) и установить каждый отдельный элемент следующим образом:
if (ckd) {
var $this = $('[id$=txtbxthis]');
var $that = $('[id$=txtbxthat]');
var $theother = $('[id$=txtbxtheother]');
. . . // store a reference to all the other to-be-affected elements in vars
$this.visible = false; // <= this is pseudoscript; I don't know what the jQuery to invisiblize an element is
$that.visible = false; // " "
$theother.visible = false; // " "
. . . // invisiblize all the other to-be-affected elements
}
Конечно, есть более элегантный/лучший способ!
Это вопрос присвоения всем условно-невидимым элементам определенного класса, а затем невидимости каждого элемента, которому присвоен этот класс, или что?
Кроме того, я хочу, чтобы область, ранее использовавшаяся этой теперь невидимой полосой, «ушла» или «свернулась», а не осталась с пустым взглядом, зияющей пропастью или безликим пространством, подобным пустыне Гоби.