Запуск FancyBox из ASP.Net Codebehind - PullRequest

Ответы [ 3 ]

6 голосов
/ 10 июля 2010

после того, как ваша кнопка ссылки обновит страницу (обратную передачу), затем вы захотите добавить какой-нибудь скрипт на свою страницу.

Ваша страница должна иметь что-то вроде этого, уже установленное

<a href="#" id="hidden_link" style="display:none;"></a>
<script type="text/javascript">
    function LaunchFancyBox() { 
          $("#hidden_link").fancybox().trigger('click'); 
    } 
</script>

Тогда выдобавит какой-нибудь скрипт внизу страницы из вашего обработчика нажатия кнопки.

Так что внизу вашей страницы вы добавите что-то вроде

<asp:Literal runat="server" ID="Literal1" />

Затем в обработчик события нажатия кнопки нажмитеу вас будет

Public Sub Button1_Click()
    Literal1.Text = "<script>$(document).ready(LaunchFancyBox());</script>"
End Sub

№ 6 в их блоге , это также поможет объяснить это, однако они запускают его при загрузке страницы всегда, поэтому им не нужно вводитьскрипт.Но поскольку вы хотите сделать это при обратной передаче, вам нужно сделать бит внедрения скрипта.

4 голосов
/ 11 июля 2010

решаемая.Просто небольшие исправления в ответе Рокина.Пришлось поместить

<script language="javascript" type="text/javascript">
$(document).ready(function() {
    $("#hidden_link").fancybox({
        'title'         : 'Test Document',
        'titleShow'     : true,
        'titlePosition' : 'over',
        'titleFormat'   : 'formatTitle',
        'type'          : 'iframe',
        'width'         : '98%',
        'height'        : '98%',
        'hideOnOverlayClick': false,
        'hideOnContentClick' : false,
        'overlayOpacity': 0.7,
        'enableEscapeButton' : false
    });
});
</script>

в тег head и ввести код ниже:

protected void SomeButton_Click(object sender, EventArgs e)
{          
    hidden_link.Attributes["href"] = "some_file.pdf";
    Literal1.Text = "<script>jQuery(document).ready(function() {$(\"#hidden_link\").trigger('click');});</script>";
}

Спасибо rockinthesixstring за подсказку правильного направления!

1 голос
/ 13 июня 2012

Я использовал ASP.Net с VB.Net в качестве кода

ASPX: 1) У меня есть скрытый якорь со стилем в качестве отображения: нет и нет буквального Добавить скрытый тег привязки id = "hidden_link" clientidmode = "static" style = "display: none;" class = "fancybox fancybox.iframe"

В области содержимого или заголовка:

 script type="text/javascript">
             $("#hidden_link").fancybox({
             //'title': 'Test Document',`enter code here
             //'titleShow': true,
             //'titlePosition': 'over',
             //'titleFormat': 'formatTitle',
             href: "SessioDocqReportPreview.aspx",
             'width': '98%',
             'height': '98%',
             'hideOnOverlayClick': false,
             'hideOnContentClick': false,
             'overlayOpacity': 0.7,
             'enableEscapeButton': false            
         }); 

     });
2) In the code behind button click event 
     Dim csMgr As ClientScriptManager = Me.ClientScript
     If Not csMgr.IsStartupScriptRegistered("OpenPopUp_Script") Then
       Dim sb As New StringBuilder()
       sb.AppendLine("$(document).ready(function() {")
       sb.AppendLine("$(""#hidden_link"").trigger('click');")
       sb.AppendLine("return false;")
       sb.AppendLine("});")
       hidden_link.Attributes("href") = "xyz.aspx"
       csMgr.RegisterStartupScript(Me.GetType(), "OpenPopUp_Script", sb.ToString(), True)
     End If
3) This way we can get rid of Literal control, if still want to use the set the sb.Tostring to the text of the literal control with script tags and ofcourse remove the StatupScript.
BTW my fancybox is from www.fancyapps.com and v2.0.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...