none
Problemas para enxergar uma lib do jquery com ScriptManager.RegisterStartupScript RRS feed

  • Pergunta

  • Olá, atualmente mexo com aplicações web-form, porem trabalhando exclusivamente com javascript, e comunicação com handlers. Vou te confessar pra quem ta acostumado a mexer com code-behind , eu to ralando pra caramba especialmente para ativar plugins jquery pelo c#.

    Estou mexendo com uma biblioteca de ajax reverso para montar um sistema de "chat" basicamente, eu pego todos os grupos que o usuário pertence e faço com que cada grupo seja um canal de comunicação e sobrescrito o canal a uma notificação. Caso alguem  tenha interesse em conhecer o link é esse aqui: http://pusher.com/docs    é um plugin jquery que voce adiciona no projeto e segue a documentação.

    Meu problema é o seguinte, eu estou tendo que chamar o plugin para renderizar um alert do jquery usando o :

     ScriptManager.RegisterStartupScript(this, typeof(Page), "", Convert.ToString(script), true);

    Ou seja, estou renderizando no C# dois scripts, o primeiro da biblioteca pusher, e o segundo do alert customizado, para que fique visualmente mais atraente e funcional do que um alert horroroso do javascript. Eu consigo alcançar a lib do pusher, mas do alert nao.

    Aqui segue um trecho do código, para facilitar a visualizaçao:

     var user = Convert.ToInt32(Session["USERID"]);
                    //
                    this.userHide.Value = user.ToString();
                    this.userProfile.Value = Session["MODE"].ToString();
                    this.consumerProfile.Value = Session["CONSUMERPROFILE"].ToString();
                    //
                    using (var service = new ESys.Intranet.Services.ConsumerService())
                    {
                        this.appUserServicesPortfolio.Visible = service.HasProviderServices(Convert.ToInt32(Session["CONSUMERID"]), user);
                    }
                    using (var service = new ESys.Intranet.Services.Dashboard.SolutionGroupService())
                    {
                        List<string> userGroups = new List<string>();
                        ESys.Intranet.Domain.Types.Dashboard.AllGroupsInfo all = new ESys.Intranet.Domain.Types.Dashboard.AllGroupsInfo();
                        all.GroupsInfo = service.GetInformationOfAllGroups(user);
                        foreach (var info in all.GroupsInfo)
                        {
                            if (info != null)
                                userGroups.Add(info.Code.ToString());
                        }
                        HttpContext.Current.Session.Add("Channels", userGroups);
                        StringBuilder script = new StringBuilder();
                        script.Append(" \n  \n");
                        script.Append("var activeUser = '" + (string)HttpContext.Current.Session["ActiveUser"] + "';  \n");
                        foreach (var info in userGroups)
                        {
                            script.Append("\n var y" + info.ToString() + " = new Pusher('15d1ed622fb19f16e98b'); \n");
                            script.Append("\n var x" + info.ToString() + "  = y" + info.ToString() + ".subscribe('" + info.ToString() + "'); \n \n \n ");
                            script.Append("\n x" + info.ToString() + ".bind('notificacao', function(data) { \n  if( data != null){ \n  $.msgBox({ \n  title: 'Notificação', \n  content: data.message  \n  });  \n} \n}); \n");
                        }
                        script.Append(" \n \n ");
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "", Convert.ToString(script), true);

    Quando chega no 

     $.msgBox({

    o script acusa que $.msbox is not a function:

    Esses daqui sao as duas referencias que uso para chamar o puhser e o alert

     <script src="http://html5-realtime-push-notifications.eu01.aws.af.cm/src/PusherNotifier.js" type="text/javascript"></script>
        
    <script src="/Acto/Common/Scripts/jquery.msgBox.js" type="text/javascript"></script>    

    Estou inserindo essas referencias na pagina .aspx mesmo, porém no code-behind o segundo script ele nao alcança.  Alguem teria qalguma sugestao de como debugar para que eu consiga enxergar esse retorno

    segunda-feira, 29 de julho de 2013 12:21

Todas as Respostas

  • Para debugar, é só dentro do browser. No Chrome, aperte F12 ou Clique com direito e escolha Inspecionar Objeto. Aí em console, ele vai te dizer onde está o erro(No canto superior direito do console) e há outras opções de debug, como, Element, Source, Network e etc... Há tutoriais de como usar o debug do Chrome.
    segunda-feira, 29 de julho de 2013 12:44
  • teria como eu setar um path pelo ScriptManager pelo code-behind para que ele possa alcançar a biblioteca

    Atenciosamente

    Marcus Fernando

    segunda-feira, 29 de julho de 2013 13:11