Как вызвать JQuery диалог с помощью RegisterStartupScript?

0

У меня есть следующий vb.net, и он отлично работает

Public Shared Sub createAlert(ByVal page As Page, ByVal msg As String)
    msg = msg.Replace(vbCrLf, "\n").Replace("'", "\'")
    page.ClientScript.RegisterStartupScript(page.GetType, "clientScript", "<script language='javascript'>alert('" & msg & "');</script>")
End Sub

Теперь я хотел бы реализовать это http://jsfiddle.net/WrdM9/2/. это диалог jquery с автоматическим закрытием через 3 секунды

Я пробовал следующее, чтобы не повезло. Что я делаю неправильно?

Public Shared Sub AlertAutoClose(ByVal page As Page, ByVal msg As String)
    Dim sScript As String
    sScript = "<script src=""js/jquery.js"">$(document).ready(function(){$('#dialog').html('some message');});"
    sScript += "$(document).ready(function(){$('#dialog').dialog({"
    sScript += "autoOpen: true,"
    sScript += "show: ""blind"","
    sScript += "hide: ""explode"","
    sScript += "modal: true,"
    sScript += "open: function(event, ui) {"
    sScript += "setTimeout(function(){"
    sScript += "$('#dialog').dialog('close');                "
    sScript += "}, 3000);"
    sScript += "}"
    sScript += "});});</script>"

    msg = msg.Replace(vbCrLf, "\n").Replace("'", "\'")
    page.ClientScript.RegisterStartupScript(page.GetType, "Script", sScript)
End Sub
Теги:

3 ответа

1

Когда вы ссылаетесь на файл сценария в теге скрипта, таком как src= "js/jquery.js", то что между тегом скрипта не будет выполнено и оно технически незаконно. Поэтому вам просто нужно разбить это на отдельный тег сценария. Это будет работать:

<script src="js/jQuery.js"></script>
<script type="text/javascript">
    alert('test');
</script> 

Это не будет:

<script src="js/jQuery.js">
    alert('test');
</script> 
0

Я меняю код на это. и теперь он работает

sScript = "<script type=""text/javascript"" src=""/js/jquery-ui-1.10.4.min.js""></script>"
sScript += "<script type=""text/javascript"" language=""javascript"">$('#dialog1').html('" & msg & "');"
sScript += "$('#dialog1').dialog({"
sScript += "autoOpen: true,"
sScript += "show: ""blind"","
sScript += "hide: ""explode"","
sScript += "modal: true,"
sScript += "open: function(event, ui) {"
sScript += "setTimeout(function(){"
sScript += "$('#dialog1').dialog('close');"
sScript += "}, 3000);"
sScript += "}"
sScript += "});</script>"
msg = msg.Replace(vbCrLf, "\n").Replace("'", "\'")
page.ClientScript.RegisterStartupScript(page.GetType, "Script", sScript)
0

Я думаю, что первая проблема заключается в том, что вы вводите две двойные кавычки. Я думаю, что это должно быть

<script src=\"js/jquery.js\"></script><script type=\"text/javascript\">$(document).ready(function(){$....

Убедитесь, что вы также передаете правильный путь для файла JQuery.

Вы также можете исключить jquery, добавив скрипт jquery на свою разметку aspx/html. И вы измените свою строку на

<script type=\"text/javascript\">$(document).ready(function(){$

Ещё вопросы

Сообщество Overcoder
Наверх
Меню