Я немного застрял, пытаясь понять, как передать элемент управления ClientID одному из моих методов JavaScript.
Изменить: я понимаю, что должен упомянуть, что это приложение Asp.Net, построенное на .Net 3.5. Не могу использовать приемы .Net 4.0, но приемы 4.0, которые вы, ребята, упомянули ниже в ответах, определенно следует иметь в виду, и они легко решат эту проблему.
Когда я делаю что-то вроде следующего, мой метод Javascript получает буквальный текст ‹%= gvCompanySelector.ClientID %>, отображаемый в моем аргументе.
Ниже показано, как мой элемент управления Asp.Net выглядит на странице Aspx.
<asp:HyperLink ID="aShowList" runat="server"
onclick="javacript:showCompanySelector('divCompanySelector','<%= gvCompanySelector.ClientID %>');"
CssClass="button">Select</asp:HyperLink>
мой метод javascript выглядит так.
function showCompanySelector(divName,gridName) {
var elem = document.getElementById(divName);
var gridElem = document.getElementById(gridName);
if (elem.style.visibility === 'visible') {
elem.style.visibility = 'hidden';
elem.style.height = '0px';
gridElem.style.height = '0px';
}
else {
elem.style.visibility = 'visible';
elem.style.height = '200px';
gridElem.style.height = null;
}
}
Это мой аргумент gridName, которому передается значение ‹%= gvCompanySelector.ClientID %>. Когда я ожидаю, что аргумент покажет что-то вроде ct100_blahlbah_gvCompanySelector ClientID.
Что меня убивает, так это то, что если я использую только стандартный тег Anchor, ClientID проходит нормально.
И если предлагается использовать AddHandler или создать вызов javascript в моем программном коде, я бы хотел этого избежать. Я пытаюсь иметь некоторое чувство последовательности в этом коде. знак равно
Спасибо!