[ASP.NET] Javascript op content page werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo!

Bij een nieuw project probeer ik sinds kort het master page - content page principe uit, alles werkt naar behoren behalve wanneer ik met simpele javascript functies aan de gang ga. Ik heb al wat rond gekeken en weet niet waar het probleem licht. Wanneer ik de zelfde soort javascript functie aanroep in een "normale" page die niet gekoppeld zit aan mijn master page werkt alles naar behoren.
Kan iemand mij helpen?

Master page code.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>   
     <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />

    <asp:ContentPlaceHolder ID="Head" runat="server" />
</head>
<body>
 <form id="form1" runat="server">  
  <div class="page">                            
            <div class="main">
                <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
            </div>                      
  </div> 
 </form>
</body>
</html>


Content page.

C#:
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
<%@ Page Title="Currency" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
CodeFile="Money_currency.aspx.cs" Inherits="Money_currency" %>

<asp:Content ID="Content1" ContentPlaceHolderID="Head" runat="server">
    <script type="text/javascript" src="Scripts/visible.js"></script>
</asp:Content> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">   
       <asp:Panel ID="panel_tb_currency" runat="server"></asp:Panel>  

        <asp:Table ID="Table1" runat="server" CssClass="currency" CellPadding="15" CellSpacing="0">
            <asp:TableRow>
                <asp:TableCell ID="tc1" CssClass="row">
                    <input type="button" ID="btnShowHide" value="Show/Hide"   onclick="toggleVisibilityOff('txCurrency1','txCurrency2','btSave','btCancel');" />
                </asp:TableCell>
                <asp:TableCell CssClass="row">
                    <asp:TextBox ID="txCurrency1" runat="server" Height="10" style="display:none"></asp:TextBox>
                </asp:TableCell>
                <asp:TableCell CssClass="row">
                    <asp:TextBox ID="txCurrency2" runat="server" Height="10" style="display:none"></asp:TextBox>
                </asp:TableCell>
                <asp:TableCell CssClass="row">
                    <asp:Button ID="btSave" runat="server" Height="20" Text="Save" style="display:none" OnClick="btSave_click"/>
                    <input type="button" ID="btCancel" Height="20" Text="Cancel" onclick="toggleVisibilityOn('txCurrency1','txCurrency2','btSave','btCancel');" style="display:none"/>
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>                
       <asp:Panel ID="panel_chart_currency" runat="server"></asp:Panel>
       <script type="text/javascript" src="Scripts/visible.js"></script>
</asp:Content>


Groetjes,

Mark

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

Je zal even moeten beloeren of de txCurrency1 inderdaad een id van txCurrency1 heeft. Vermoedelijk niet. Dus: kijk in de gerenderde source en je zal zien dat dit hoogstwaarschijnlijk niet het geval is.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Wat is je probleem, wat werkt niet, wat verwacht je, welke foutmelding(en) zijn er? Laat de javascript is zien.

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@TeeDee de gerenderde source qua id's zijn inderdaad anders i.p.v. txCurrency1 was het bijvoorbeeld MainContent_txCurrency1. Het werkte 1 keer(In ff) maar daarna niet meer erg vreemd. In ie werkt het nu wel.

@CyCloneNL

Het probleem is dat de javascript niet werkt op mij content page. Ik krijg nu de foutmelding:

-tx1 is null

Javascript code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function toggleVisibilityOff(tx1, tx2, bt1, bt2) {
    var tx1 = document.getElementById(tx1);
    tx1.style.display = "";
    var tx2 = document.getElementById(tx2);
    tx2.style.display = "";
    var bt1 = document.getElementById(bt1);
    bt1.style.display = "";
    var bt2 = document.getElementById(bt2);
    bt2.style.display = "";
}
function toggleVisibilityOn(tx1, tx2, bt1, bt2) {
    var tx1 = document.getElementById(tx1);
    tx1.style.display = "none";
    var tx2 = document.getElementById(tx2);
    tx2.style.display = "none";
    var bt1 = document.getElementById(bt1);
    bt1.style.display = "none";
    var bt2 = document.getElementById(bt2);
    bt2.style.display = "none";
}

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Je zal met de ClientId van de Control (FindControl("ControlName").ClientId()) aan de gang moeten of .Net 4.0

[ Voor 5% gewijzigd door gorgi_19 op 21-04-2011 17:39 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probleem opgelost, De fout lag waar TeeDee zij!
Thanks TeeDee ;)

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

Zoals gorgi_19 aangeeft: .Net 4.0 heeft een property waarbij je kan aangeven dat de ID's static gerenderd moeten worden.

Anders zal je inderdaad met ClientId aan de gang moeten. Dit kan dmv FindControl("ControlName").ClientId of door <%=jeControl.ClientId%> te gebruiken.

Heart..pumps blood.Has nothing to do with emotion! Bored

Pagina: 1