26. oktober 2005 - 13:57Der er
55 kommentarer og 1 løsning
data fra textbox/dropdown vist på ny side
Jeg koder i ASP.Net og vb.
Jeg har en side med en masse textboxe, hvor jeg har data som jeg har hentet fra en database, samt noget brugeres selv skal taste ind/vælge i dropdown. Data fra disse textboxe/dropdown, vil jeg gerne have overfør til en ny side hvor kun teksten bliver vist, så de kan printe den ud.
Jeg kan ikke bruge datagrid da det skal være i tabeller med mere end en række og antallet af kolonner er difineret ud fra deres valg. Eks:
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
<script language="javascript"> function PrintThisPage() { var sOption="toolbar=yes,location=yes,directories=yes,menubar=yes,"; // sOption+="scrollbars=yes,width=1000,height=800,left=100,top=25";
var sWinHTML = document.getElementById('tabel1').innerHTML;
det du gør er at lave en tabel rundt om det data du vil have vist. den skal have et id kaldet tabel1. prøv evt at vise din kildekode på siden så kan jeg tilpasse den så det virker.
Jeg har kun aspx sider og det med label kender jeg alt til. Det tager en krig at kode HTML tabeller sammen med ASP.NET og VB, hvis man har så meget info som jeg skal fremvise. Men jeg kan godt se at de måske er den eneste udvej.
Hvordan vil du implementere: text value til Request.Form["FeltNavn"].ToString();
du kan sætte dem i codebehind filen før siden bliver postetback. du opretter de tabeller og label du skal bruge på aspx siden. f.eks. et label kaldet lblnavn og i codebehind bruger du så. lblnavn.Text = Request.Form["Navn"]; Navn er så ID på en tekstbox på den forrige side.
Jeg har arbejdet meget med dette, men jeg har ikke altid helt styr på fagudtrykkene. Jeg har godt set at mange bruger udtrykket codebehind, men hvad er dette egentlig??
hvis du højreklikker på en aspx side inde i vs.net så kan du vælge view code. så ser du code behind filen til den valgte aspx side. prøv evt at kigge her:http://www.webreference.com/js/column115/
Det er min printside som skal have alle info fra den forrige side (kun i tekstformat), hvor der både er textfelter med data fra database, data fra dropdown og data som brugeren selv har tastet ind.
På min side 1 har jeg skrevet: <asp:Button id="BtnPrint" onclick="BtnPrint_Click" runat="server" Text="Print"></asp:Button>
i min codebehind står der: <%@ Page Language="VB" ContentType="text/html" ResponseEncoding="iso-8859-1" %>
Imports Microsoft.VisualBasic
Partial Class CodeBehind Inherits System.Web.UI.Page
Protected Sub BtnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Response.redirect("print.aspx") lblinfo.Text = Request.Form["TxtTraadtykkelseResultat"]; End Sub End Class
På min side 2 har jeg en label som hedder lblinfo.
Hvad skal jeg skrive på side 1 og 2 for at "koble dem sammen".
Jeg ved det er noget med <%@ Page Language="VB" codefile="CodeBehind_vb.aspx.vb" Inherits="CodeBehind" Debug="true" %>
Fandt ud af det, men nu kan jeg ikke komme videre fordi den siger er lblinfo ikke er erklæret og selvfølgelig er den ikke det, for den er jo først på side 2
Det fandt jeg du af klige før jeg gik hjem i går, men så skriver den nu:
En værdi af typen 'System.Collections.Specialized.NameValueCollection' kan ikke konverteres til 'String'.
PGA denne kode i codebehind Private Sub BtnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrint.Click LblInfo.Text = request.form["txtTraadtykkelseresultat"] End Sub
Jeg har prøvet.tostring() osse at skrive request.item
Detaljer om undtagelse: System.NullReferenceException: Objektreferencen er ikke indstillet til en forekomst af et objekt.
Kildefejl: Linje 5: Linje 6: Public Sub BtnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrint.Click Linje 7: LblInfo.Text = request.form("txtTraadtykkelseresultat") Linje 8: End Sub Linje 9:
får du samme exception hvis du bruger: PGA denne kode i codebehind Private Sub BtnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrint.Click LblInfo.Text = "noget tekst"; End Sub
Nu har jeg skrevet: Public Sub BtnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrint.Click Response.Redirect("print.aspx") LblInfo.Text = request.form("txtTraadtykkelseresultat") End Sub
Og jeg har prøvet alt muligt med target m.m., men den bliver ved med at gå tilbage til min side 1
på side 1 har jeg <asp:Button id="BtnPrint" OnClick="btnprint_click" runat="server" Text="Print"></asp:Button> ---------------------------------------------------------------------- På codebehind har jeg Public Class nextpage Inherits System.Web.UI.Page Protected WithEvents lblinfo As System.Web.UI.WebControls.Label Protected WithEvents BtnPrint As System.Web.UI.WebControls.Button
Public Sub BtnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrint.Click Response.Redirect("print.aspx") LblInfo.Text = request.form("txtTraadtykkelseresultat") End Sub
End Class ---------------------------------------------------------------------- På print aspx har jeg: <asp:Label id="LblInfo" OnLoad="BtnPrint_Click" runat="server"></asp:Label>
hvis jeg nu bruger dit java istedet - selvom jeg ingen anelse har om det. Hvor skal jeg så sætte det ind? Jeg har har forsøgt alt andet. Jeg har tæsket samtlige kodesider igennem på nettet + lånt bøger på biblo.
Den er sindsyg lang , så jeg piller lige noget af det væk. Tror godt jeg kan finde ud af at rette det til. Fik ihvertfald det du skrev til at vise den først tabel, men jeg vil kun have teksten ikke selve boksene
Dim strConn As String Dim objConn As OleDbConnection Dim objComm As OleDbCommand Dim objRs As OleDbDataReader
Sub Page_Load()
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("test.MDB") & ";" objConn = New OleDbConnection(strConn)
End Sub
Sub BtnHent_Click(sender As Object, e As EventArgs)
Dim strSQL as string strSQL = "Select * from DB where KundeID='" & TxtKunde.text & "' and OrdreNr='" & txtOrdreNr.text & "'" ObjConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=test.mdb") ObjComm = New OleDbCommand(strSQL, objConn)
ObjConn.Open() ObjRs = objComm.ExecuteReader() While ObjRs.Read()
Det jeg mente var bare at der er så mangle tabeller i koden, så hvis jeg ikke fjernede et par af dem ville det ende med at koden fyldte flere sider.
Jeg har fået den til at vise alle tabeller. Jeg gav body et id og ændrede var sWinHTML = document.getElementById('tabel1').innerHTML; Til var sWinHTML = document.getElementById('produktion').innerHTML;
Nu er problemet bare at det er teksten i felterne(både dem fra db og manuel indtastning) og ikke felterne selv + jeg vil gerne se teksten fra dropdown osse.
Ja jeg fik det hele til at virke. Det har også kuen taget mig 2-3 dage. Gid jeg havde taget det java før. Selvom jeg ikke havde prøvet det før så er det faktisk ikke så svært at rette i.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.