В настоящее время, если я использую JavaScript в своих проектах SharePoint, я добавляю код в файл * .ascx, в блок <script type="text/javascript"></script>
и создаю для каждого элемента переменную для ClientID
.
.
Например:
var test = '<%= TextBox1.ClientID %>';
Теперь я хотел бы добавить внешний JavaScript в мои проекты и вставить туда код.
Но как я могу получить доступ к ClientID
? Во внешнем JavaScript я не могу использовать <%= TextBox1.ClientID %>
. Я нашел это: ссылка на серверные элементы управления во внешнем файле , но я не понимаю, как это должно работать. Было бы замечательно, если бы кто-то мог объяснить мне, как получить доступ к идентификаторам.
Кстати, а почему это:
<script type="text/javascript">
var ClientIDs = {
test1 : '<%= TextBox1.ClientID %>',
test2 : '<%= TextBox2.ClientID %>'
}
function SetButtonStatus() {
alert($(ClientIDs.test1).value);
}
</script>
не работает, сообщение не будет отображаться?
Greetz
Редактировать 1:
Хорошо, я мог бы просто использовать textBox1 в моем внешнем скрипте?
Я сделал это так, это в моем * .ascx файле:
<script type="text/javascript">
var ClientIDs = {
textBox1: '<%= textBox1.ClientID %>',
textBox2: '<%= textBox2.ClientID %>'
}
</script>
В моем внешнем скрипте есть только функция для его проверки:
function test () {
alert($(ClientIDs.textBox1).val();
}
Я также проверил это с "#" +
. Каждый раз, когда выполняется test (), я получаю следующую ошибку:
"document.getElementById(...)" is null or not an object
Редактировать 2:
Я пропустил )
в предупреждении. Но теперь я получаю сообщение, что переменная не определена.
Если я использую: $('#' + ClientIDs.SumbitSearch).val()
, я просто получаю текст, а не идентификатор моего элемента управления.
Редактировать 3:
На данный момент я использую:
<script type="text/javascript">
var ClientIDs = {
test1 : '<%= TextBox1.ClientID %>',
test2 : '<%= TextBox2.ClientID %>'
}
function test() {
alert($('#' + ClientIDs.test1).attr("id")));
}
</script>
В моем * .ascx файле это работает. Мне не нравится этот способ ... Он не работает во внешнем JS, ссылки не работают. Если у кого-то есть другие идеи, которые будут работать с .net 3.5, было бы неплохо, если бы он дал мне знать.