tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von M4st3r
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1681
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Xenolith Xenolith ist offline Mitglied Silber
    Registriert seit
    Dec 2006
    Beiträge
    69
    Ich habe ein Webpart für einen Sharepoint in C# geschrieben welches eine *.js Scriptdatei ausführt wenn ich auf einen Button klicke. Jetzt möchte ich aber nicht jedesmal auf den Button drücken sondern das script automatisch ausführen wenn die Seite geladen hat.

    Hier der Code um das script mit dem Button aufzurufen:

    Der Code mit Button:
    Code :
    1
    
    output.Write("<br><input class='ms-SPButton' value=\'Klick mich\' type=button onclick=\"Code();\" >");

    Könnt ihr mir verraten wie ich das ohne Buttonklick hinbekomme?

    Vielen Dank für eure Hilfe
     

  2. #2
    M4st3r M4st3r ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Ort
    Frankfurt am Main
    Beiträge
    297
    Ich denke das, was du suchst schaffst du damit: Page.ClientScript.RegisterStartupScript(....)
     
    http://dirkgoldecker.spaces.live.com

    . Microsoft Certified Technology Specialist
    . Microsoft Certified Professional Developer
    |-> Web Applications

  3. #3
    Xenolith Xenolith ist offline Mitglied Silber
    Registriert seit
    Dec 2006
    Beiträge
    69
    Nur damit man es besser nachvollziehen kann:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    
    using System;
    using System.IO;
    using System.Diagnostics;
    using System.Reflection;
    using System.Runtime.InteropServices;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls; //nicht benötigt?
    using System.Xml.Serialization;
    using System.Globalization;
    using System.ComponentModel;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    using Microsoft.SharePoint.WebPartPages;
    namespace ColoredEntries
    {
        [Guid("ec3aa31c-65ef-45f9-89a4-d4081fa19588")]
        [CLSCompliantAttribute(false)]
        //neu Microsoft.SharePoint.WebPartPages.WebPart
        //alt System.Web.UI.WebControls.WebParts.WebPart
        public class ColoredEntries : Microsoft.SharePoint.WebPartPages.WebPart
        {
            private const string defaultText = "";
            private string text = defaultText;
            private const string JCodeFileName = "myCode1.js";
            private const string JCodeIncludeScriptKey = "myJCodeIncludeScript";
            private const string IncludeScriptFormat = @"<script language=""{0}"" src=""{1}{2}""></script>";
            public ColoredEntries()
            {
                Debug.WriteLine("Test1");
                this.PreRender += new EventHandler(ColoredEntries_PreRender);
            }
            [Browsable(true), Category("Miscellaneous"),
            DefaultValue(defaultText),
            WebPartStorage(Storage.Personal),
            FriendlyName("Text"), Description("Text Property")]
            public string Text
            {
                get
                {
                    return text;
                }
                set
                {
                    text = value;
                }
            }
            private void ColoredEntries_PreRender(object sender, System.EventArgs e)
            {
                Debug.WriteLine("Test2");
                RegisterCommonScript();
            }
            protected void RegisterCommonScript()
            {
                Debug.WriteLine("Test3");
                //string location = null;
                if (!Page.IsClientScriptBlockRegistered(JCodeIncludeScriptKey))
                        {
                            String location = this.ClassResourcePath + "/";
                            Debug.WriteLine(this.ClassResourcePath);
                            // Create the client script block.
                            string includeScript = String.Format(IncludeScriptFormat, "javascript", location, JCodeFileName);
                            Debug.WriteLine(includeScript);
                            Page.RegisterClientScriptBlock(JCodeIncludeScriptKey, includeScript);
                            Debug.WriteLine(JCodeIncludeScriptKey);
                            Debug.WriteLine(includeScript);
                        }
               //typen auf neu aktualisieren!
            }
            protected override void CreateChildControls()
            {
                base.CreateChildControls();
            }
            protected override void RenderWebPart(HtmlTextWriter output)
            {
                //Ausgabe mit Button
                output.Write("<br><input class='ms-SPButton' value=\'Klick mich\' type=button onclick=\"Code();\" >");
                //output.Write("<\"Code();\">");
                //Page.RegisterStartupScript("mycode", includeScript);
                Debug.WriteLine("ende");
            }
            /*
            protected override void OnLoad(EventArgs e)
            {
                base.OnLoad(e);
            }
            */
        }
    }

    Ich möchte aus der js Datei myCode.js die funktion Code() aufrufen ohne auf einen Button klicken zu müssen
    Geändert von Xenolith (09.10.08 um 12:18 Uhr)
     

  4. #4
    M4st3r M4st3r ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Ort
    Frankfurt am Main
    Beiträge
    297
    Du hast doch schon fast die Lösung in RenderWebPart stehen. Versuche mal

    Code :
    1
    
    Page.ClientScript.RegisterStartupScript(this.GetType(), "theKey", "Code();", true);

    In PageLoad(), das sollte funktionieren - allerdings auch nur dann, wenn deine js-Datei verlinkt ist...
    Xenolith bedankt sich. 
    http://dirkgoldecker.spaces.live.com

    . Microsoft Certified Technology Specialist
    . Microsoft Certified Professional Developer
    |-> Web Applications

  5. #5
    Xenolith Xenolith ist offline Mitglied Silber
    Registriert seit
    Dec 2006
    Beiträge
    69
    Super danke! da hätte ich aber auch selber drauf kommen können naja Betriebsblindheit
     

Ähnliche Themen

  1. Cache-Probleme beim Laden einer Seite von Flash aus
    Von greggy80 im Forum Flash Plattform
    Antworten: 8
    Letzter Beitrag: 06.11.10, 21:00
  2. Funktionsaufruf beim Starten der Seite
    Von the_royal im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 09.07.10, 11:26
  3. Beim Laden einer Seite "hakt" animiertes Bild
    Von Kai-Behncke im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 14.11.09, 11:58
  4. Neues Fenster öffnen beim laden einer Seite
    Von 3Dnavigator im Forum PHP
    Antworten: 2
    Letzter Beitrag: 03.07.03, 19:22
  5. Popup beim Laden einer Seite?
    Von Zeitgeist im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 24.04.02, 15:59