Toon posts:

Asp.net (VB) worddocument (uit list) openen in new window

Pagina: 1
Acties:
  • 68 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo,

Ik heb het volgende probleem. Ik heb een ASP.net pagina(staat in een pagina met frame's) gemaakt waarin een listbox staat met worddocumenten. Nu is het de bedoel dat de gebruiker uit deze lijst een selectie kan maken.

Op het moment dat hij dan op de button wijzige klikt zou deze geopend moeten worden in een nieuw window, dus niet in het frame.

Eerst werkte ik met een response.redirect, dit kan echter niet werken omdat dit niet in een andere frame kan laden.

Ook heb ik geprobeert om een stukje javascript erin te zetten, maar ook dit werkt niet.


Heeft iemand een oplossing hiervoor.

Hieronder is de code met bij de sub OpenFile de response redirect en onder de tag form een stukje javascript (vondt dat opzich een rare plek maar stong in een andere topic op GOT dat dat zo kon)

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.IO" %>

<script runat="server">


    Dim ArrayFilesA As New ArrayList


    ' Pagina Constructor wordt iedere keer bij het laden van de pagine aangeroepen

         Sub Page_Load()

             Dim FileArrayA() As String

             'Dim ArrayFilesA As New ArrayList

             FileArrayA = Directory.GetFiles(Server.MapPath("Data/Ploeg_A"), "*.xls")

             Dim ItemA As String
             For Each ItemA in FileArrayA

                 ItemA = Replace(ItemA, Server.MapPath("Data/Ploeg_A")+"\", "")
                 ArrayFilesA.add(ItemA)


             Next


             'ArrayFilesA.Reverse()

             List_Polyvalence_A.DataSource=ArrayFilesA


            ' Voorkomt dat bij het reloaden de selectie gewist wordt
            ' indien neit aanwezig zal de selected index altijd null zijn bij een actie
            if Not IsPostBack Then

             List_Polyvalence_A.DataBind()

            End If

         End Sub



    ' Action Listener voor Button Nieuw
    ' Hierin wordt een kopie gemaakt van het bron bestand ( Naam = Ploeg + Datum + Extensie)
    ' Nadat deze kopie gemaakt is wordt de pagina opnieuwe geladen door het aanroepen van Page_Load
    ' Hierna wordt het aangemaakt document geopend
    ' Indien het bestand reeds bestaad wordt er een message gegeven

         Sub CopyFile(Src As Object, Args As EventArgs)

            Dim Datum As String
            Datum = System.DateTime.Now.ToShortDateString()


         ' Controle of bestand al aanwezig is (zo ja run If zo niet run else)

                if(File.Exists(Server.MapPath("Data/Ploeg_A/"+"Pol_"+Datum +"_A.xls")))

                    MessageBox("Het door u aangevraagde xlsument is vandaag reeds aangemaakt")

                Else

                    File.Copy(Server.MapPath("Bron.xls"),Server.MapPath("Data/Ploeg_A/"+"Pol_"+Datum +"_A.xls"))
                    List_Polyvalence_A.DataBind()
                    Response.redirect("Data/Ploeg_A/"+"Pol_"+Datum +"_A.xls")


                End If

         End Sub

     ' Methode voor het openen van een bestaand bestand

        Sub OpenFile(Src As Object, Args As EventArgs)

            if  List_Polyvalence_A.SelectedIndex <> -1 Then


               'Response.Redirect("Data/Ploeg_A/"+List_Polyvalence_A.SelectedItem.text)
                Response.ContentType="Application/x-msexcel"
                Response.WriteFile(Server.MapPath("Data/Ploeg_A/"+List_Polyvalence_A.SelectedItem.text))



            Else

              MessageBox("U heeft geen item in de lijst geselecteerd om te wijzige")


            End If



        End Sub


        sub DeleteFile(Src As Object, Args as EventArgs)


         if  List_Polyvalence_A.SelectedIndex <> -1 Then


                File.Delete(Server.MapPath("Data/Ploeg_A/"+List_Polyvalence_A.SelectedItem.text))
                ArrayFilesA.Remove(List_Polyvalence_A.SelectedItem.text)
                List_Polyvalence_A.DataBind()


            Else

              MessageBox("U heeft geen item in de lijst geselecteerd om te wijzige")


            End If



        end sub

      ' Methode voor het geven van een Error Melding

        Sub MessageBox(Mensagm as String)

            Dim ScriptError As String

            ScriptError="<script language=JavaScript>"
            ScriptError= ScriptError &"alert('"& MensAgm &"');"
            ScriptError= ScriptError & "</script"&">"

            if(Not IsClientScriptBlockRegistered("alert")) then
                RegisterClientScriptBlock("alert",ScriptError)
            End If

        End Sub


        Sub DesicionMessageBox(Mensagm as String)

            Dim ScriptError As String

            ScriptError="<script language=JavaScript>"
            ScriptError= ScriptError &"Confirm('Wilt u het geselecteerde bestand zeker verwijdern');"
            ScriptError= ScriptError &"alert('"& MensAgm &"');"
            ScriptError= ScriptError & "</script"&">"

            if(Not IsClientScriptBlockRegistered("alert")) then
                RegisterClientScriptBlock("alert",ScriptError)
            End If

        End Sub

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <p align="left">
            <font face="Arial" size="4"><em>Registratie Polyvalence Ploeg A</em></font>
        </p>
        <em><font face="Arial" size="4">
        <p align="center" <p>
            <asp:ListBox id="List_Polyvalence_A" style="Z-INDEX: 102; LEFT: 108px; POSITION: absolute; TOP: 71px" runat="server" Width="258px" Height="354px"></asp:ListBox>
        </p>
        </font></em>
        <p align="left">
            <asp:Button id="btNieuw" style="Z-INDEX: 103; LEFT: 392px; POSITION: absolute; TOP: 71px" onclick="CopyFile" Width="117px" Text="Nieuw" Runat="Server"></asp:Button>
        </p>
        <p align="left">
        </p>
        <p align="left">
            <asp:Button id="btWijzige" style="Z-INDEX: 107; LEFT: 392px; POSITION: absolute; TOP: 106px" OnClientClick="change()" OnClick="OpenFile" runat="server" Width="117px" Text="Wijzige"></asp:Button>
        </p>
        <hr style="Z-INDEX: 100; LEFT: 5px; POSITION: absolute; TOP: 45px" color="black" size="2" />
        <p align="left">
            <strong><font face="Arial" size="4">&nbsp; </font></strong>
        </p>
        <hr style="Z-INDEX: 100; LEFT: 7px; POSITION: absolute; TOP: 488px" color="black" size="2" />
        <p align="left">
            &nbsp;<asp:Button id="btDelete" style="Z-INDEX: 101; LEFT: 391px; POSITION: absolute; TOP: 141px" onclick="DeleteFile" runat="server" Width="118px" Text="Delete"></asp:Button>
            &nbsp;
        </p>
    </form>
    <script language=javascript>
      function Change()
      {
        javascript:window.open("serverpath + selected.item laden");
      }    
      
    </script> 
    
</body>
</html>

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

code:
1
2
3
4
5
6
7
    <script language=javascript>
      function Change()
      {
        javascript:window.open("serverpath + selected.item laden");
      }    
      
    </script>
Jouw probleem zit niet in ASP.NET maar in je Javascript. Je hebt blijkbaar geen idee wat je aan het doen bent. Je zit al in de script tag, en toch zet je nog "javascript:" voor je window.open? :? Haal die "javascript:" weg en het doet waarschijnlijk al veel meer.

Verder is het niet de bedoeling dat wij hier in Programming & Webscripting jouw code voor je gaan debuggen. Als je ergens problemen mee hebt, isoleer dan het probleem en breng het terug tot een klein aantal regels. Debuggen mag je zelf doen verder, en daarom gaat je topic op slot. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.