динамически добавлять клиентский скрипт на страницу asp.net

Asked
Viewd3193

0

Я хочу динамически добавлять javascript на страницу asp.net. может кто-нибудь указать мне на рабочий пример? я знаю, что это можно сделать с помощью Page.ClientScript.RegisterClientScriptBlock но я понятия не имею, как его использовать.

2 ответов

1

MSDN

Это ссылка MSDN

 if (!this.Page.ClientScript.IsClientScriptBlockRegistered(typeof(Page), "Utils"))
        {
            string UtilsScript = ResourceHelper.GetEmbeddedAssemblyResource("Utils.js");

            this.Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Utils", UtilsScript, true);
        }
 

Я добавил приведенный выше пример, чтобы помочь,

Здесь мы проверяем, зарегистрирован ли уже сценарий (используя тип dkey, для которого мы регистрируем), получаем сценарий в виде строки из встроенного ресурса, затем регистрируем (последний параметр true указывает коду на отображение тегов сценария).

надеюсь, что это поможет

P

  • Первый - это тип для «привязки» скрипта, в данном случае к странице, второй - это ключ, чтобы вы могли проверить, существует ли скрипт перед его добавлением (сложные среды с несколькими элементами управления), которые вы тестируете.с использованием Pag.ClientScript.IsClientScriptBlockRegistered (тип, ключ) с использованием того же типа и ключа, которые использовались для регистрации.

    Pharabus13 ноября 2009, 20:40
  • Можете ли вы объяснить первый и второй аргумент RegisterClientScriptBlock

    Novice Developer13 ноября 2009, 20:36
1

Пример перемещения значения раскрывающегося списка в текстовое поле.Параметры ID - это свойства Object.ClientID для раскрывающегося списка и текстового поля.

 Private Sub RegisterClientDropDownToTextBox(ByVal functionName As String, ByVal dropDownId As String, ByVal textBoxId As String)
    Dim javascriptFunction As String = "function " & functionName & "() {" & _
                                       "document.getElementById('" & textBoxId & "').value = document.getElementById('" & dropDownId & "').value;" & _
                                       "}"
    Dim javascriptWireEvent As String = "document.getElementById('" & dropDownId & "').onclick = " & functionName & ";"
    Me.ClientScript.RegisterClientScriptBlock(Me.GetType(), functionName & "_ScriptBlock", javascriptFunction, True)
    Me.ClientScript.RegisterStartupScript(Me.GetType(), functionName & "_Startup", javascriptWireEvent, True)
End Sub