Как лучше всего изменить высоту и ширину элемента управления ASP.NET с помощью клиентской функции Javascript?
Спасибо, Джефф





Вы можете использовать элементы управления .ClientID и некоторый javascript и изменить их таким образом.
Вы можете сделать это с помощью высоты / ширины CSS или некоторых элементов управления непосредственно в самом элементе управления.
Из-за искажения имен, введенного ASP.NET, я использую функцию внизу, чтобы найти элементы управления ASP. Когда у вас есть элемент управления, вы можете установить высоту / ширину по мере необходимости.
example usage:
<input type='button' value='Expand' onclick='setSize("myDiv", 500, 500);' />
...
function setSize(ctlName, height, width ) {
var ctl = asp$( ctlName, 'div' );
if (ctl) {
ctl.style.height = height + 'px';
ctl.style.width = width + 'px';
}
}
function asp$( id, tagName ) {
var idRegexp = new RegExp( id + '$', 'i' );
var tags = new Array();
if (tagName) {
tags = document.getElementsByTagName( tagName );
}
else {
tags = document.getElementsByName( id );
}
var control = null;
for (var i = 0; i < tags.length; ++i) {
var ctl = tags[i];
if (idRegexp.test(ctl.id)) {
control = ctl;
break;
}
}
if (control) {
return $(control.id);
}
else {
return null;
}
}
Да, это возможно. Элементы управления ASP отображаются в браузере как элементы управления HTML с некоторыми добавленными атрибутами. Если вы присвоили элементу управления ASP.Net идентификатор при его создании, он также будет отображаться как идентификатор элемента управления HTML.
У вас должна быть возможность получить доступ к элементам управления с помощью функции javascript getElementById (), и вы должны иметь возможность изменять атрибуты CSS (стиль, указанный в сообщении над этим).
Если вы используете JQuery, выбор и установка стилей CSS может быть проще, например
$ ("# myControl"). css ("ширина") == myNewValue;
Ваше здоровье
Пример: если идентификатор кнопки - «Foobar» и она находится в пользовательском элементе управления с идентификатором «UC», который находится на странице, использующей главную страницу, которая имеет заполнитель содержимого с идентификатором «CPH», она может закончиться вверх как что-то вроде "ctl00_CPH_UC_Foobar" на клиенте; просто помните об этом.
в этом случае вы можете сделать это $ ("# <% myControl.ClientID%>"). css ("width") == myNewValue;
Предостережение: идентификатор элемента управления ASP.NET будет доставлен клиенту в незапутанном виде, только если элемент управления находится непосредственно на странице ASPX, которая не использует главную страницу, в противном случае он будет изменен к тому времени, когда попадет к клиенту.