| Forum: ASP.NET |
Thema:
RE:Re: Rückgabe Werte aus PopupWebForm |
Von:
G. Guest (
13.02.2003 11:28) |
Hallo Rene,
hier ist mein Code:
Die Übergabe einer Kundennummer teste ich gerade mit einem UserControl. Deswegen hier jetzt die Übergabe eines Dateinamens. Das Prinzip ist aber das gleiche. Ich möchte erreichen, daß nach der Auswahl der Dateiname ind der Textbox txtKKonzernDatei der aufrufenden Form steht. Die Fehlermeldung erscheint unabhängig davon, ob ich die Form zur Dateiauswahl per Java oder per Server.Transfer öffne.
***Haupform*****************************************
Imports System.Data.OleDb
Public Class Kunde
Inherits PDB.PageBase
Protected WithEvents lblMain1 As System.Web.UI.WebControls.Label
Protected WithEvents ComMenu1 As ComMenu
Protected WithEvents txtKNr As System.Web.UI.WebControls.TextBox
Protected WithEvents txtKName1 As System.Web.UI.WebControls.TextBox
Protected WithEvents rfvPBez As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents txtKName2 As System.Web.UI.WebControls.TextBox
Protected WithEvents txtKStrasse As System.Web.UI.WebControls.TextBox
Protected WithEvents cboK_GID As System.Web.UI.WebControls.DropDownList
Protected WithEvents txtKLKZ As System.Web.UI.WebControls.TextBox
Protected WithEvents txtKPLZ As System.Web.UI.WebControls.TextBox
Protected WithEvents txtKOrt As System.Web.UI.WebControls.TextBox
Protected WithEvents Requiredfieldvalidator1 As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents Requiredfieldvalidator2 As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents lblMessage As System.Web.UI.WebControls.Label
Protected WithEvents txtKKNr As System.Web.UI.WebControls.TextBox
Public ds As New DataSet()
Dim strSQL As String, intKNo As Integer
Dim con As OleDbConnection
Protected WithEvents txtKID As System.Web.UI.WebControls.TextBox
Protected WithEvents txtKKonzernDatei As System.Web.UI.WebControls.TextBox
Protected WithEvents lbtSetFile As System.Web.UI.WebControls.LinkButton
Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton
Dim ad As OleDbDataAdapter
#Region " Vom Web Form Designer generierter Code "
'Dieser Aufruf ist für den Web Form-Designer erforderlich.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: Diese Methode ist für den Web Form-Designer erforderlich
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Hier Benutzercode zur Seiteninitialisierung einfügen
If Not Page.IsPostBack Then
With ComMenu1
.ucDataSource = GetCommands("Kunde")
End With
intkNo = Session("KundenNo")
Call SetStrings()
Call BindControls()
Call SetFocus(txtKNr)
End If
End Sub
Private Sub ComMenu1_click(ByVal sender As System.Object, ByVal e As ComMenu.ComMenuArgs) Handles ComMenu1.MenuClick
'Response.Write(e.Action & " - " & e.URL)
Dim strResult As Integer
With ComMenu1
'Gruppe LinkButton mit Befehlsname "PCommand"
Select Case e.Action
Case "Cancel"
Server.Transfer(e.URL)
Case "Update"
Call UpdateKunde()
Case "Delete"
strResult = DeleteKunde(Convert.ToInt32(txtKID.Text))
'WriteLine(Convert.ToString(strResult) & " Datensatz(e) gelöscht!")
Server.Transfer(e.URL)
End Select
End With
End Sub
Property ChooseKNo()
Get
Return Me.txtKKonzernDatei.Text
End Get
Set(ByVal Value)
Me.txtKKonzernDatei.Text = Value
End Set
End Property
Private Sub SetStrings()
If intKNo = 0 Then
lblMain1.Text = "Neuen Kunden erfassen"
Else
lblMain1.Text = "Kunde " & intKNo & " bearbeiten"
End If
End Sub
Private Sub BindControls()
'Kombifeld laden
With cboK_GID
.DataSource = GetGebiete()
.DataTextField = "GBez"
.DataValueField = "GID"
.DataBind()
End With
If intKNo = 0 Then
'Neuer Satz
Else
'Dataset mit dem Satz des gewählten Kunden erzeugen
ds = GetKunde(intKNo)
DataBind()
If Not IsDBNull(ds.Tables("tblKunde").DefaultView(0).Item("K_GID")) Then
cboK_GID.SelectedIndex = cboK_GID.Items.IndexOf(cboK_GID.Items.FindByValue(ds.Tables("tblKunde").DefaultView(0).Item("K_GID")))
End If
End If
End Sub
Public Function UpdateKunde()
con = New OleDbConnection(GetConnStrStamm())
If txtKID.Text = Nothing Then
ad = New OleDbDataAdapter("SELECT * FROM tblKunden WHERE KID=0", con)
ad.InsertCommand = New OleDbCommand("INSERT INTO tblKunden ( KNr, KKNr, KName1, KName2, KStrasse, KLKZ, KPLZ, KOrt, KKonzernDatei, K_GID) VALUES(?,?,?,?,?,?,?,?,?,?)", con)
ad.InsertCommand.CommandType = CommandType.Text
ad.InsertCommand.Parameters.Add("@KNr", OleDbType.Char, 6, "KNr")
ad.InsertCommand.Parameters.Add("@KKNr", OleDbType.Char, 6, "KKNr")
ad.InsertCommand.Parameters.Add("@KName1", OleDbType.Char, 50, "KName1")
ad.InsertCommand.Parameters.Add("@KName2", OleDbType.Char, 50, "KName2")
ad.InsertCommand.Parameters.Add("@KStrasse", OleDbType.Char, 100, "KStrasse")
ad.InsertCommand.Parameters.Add("@KLKZ", OleDbType.Char, 10, "KLKZ")
ad.InsertCommand.Parameters.Add("@KPLZ", OleDbType.Char, 10, "KPLZ")
ad.InsertCommand.Parameters.Add("@KOrt", OleDbType.Char, 50, "KOrt")
ad.InsertCommand.Parameters.Add("@KKonzernDatei", OleDbType.Char, 255, "KKonzernDatei")
ad.InsertCommand.Parameters.Add("@K_GID", OleDbType.SmallInt, 4, "K_GID")
con.Open()
Dim ds As New DataSet()
ad.Fill(ds, "Kunde")
Dim r As DataRow = ds.Tables("Kunde").NewRow
r("KNr") = txtKNr.Text
r("KKNr") = txtKKNr.Text
r("KName1") = txtKName1.Text
r("KName2") = txtKName2.Text
r("KStrasse") = txtKStrasse.Text
r("KLKZ") = txtKLKZ.Text
r("KPLZ") = txtKPLZ.Text
r("KOrt") = txtKOrt.Text
r("KKonzernDatei") = txtKKonzernDatei.Text
'r("PEinAm") = Convert.ToDateTime(lblPEinAm.Text)
r("K_GID") = cboK_GID.Items(cboK_GID.SelectedIndex).Value
ds.Tables("Kunde").Rows.Add(r)
AddHandler ad.RowUpdated, New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
ad.Update(ds, "Kunde")
RemoveHandler ad.RowUpdated, New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
txtKID.Text = r.Item("KID")
Else
con.Open()
Dim com As OleDbCommand = New OleDbCommand()
com.Connection = con
strSQL = "UPDATE tblKunden SET KNr='" & txtKNr.Text & "', KKNr='" & txtKKNr.Text & "', KName1='" & txtKName1.Text & "', KName2='" & txtKName2.Text & "', KStrasse='" & txtKStrasse.Text & "', KLKZ='" & txtKLKZ.Text & "', KPLZ='" & txtKPLZ.Text & "', KOrt='" & txtKOrt.Text & "', KKonzernDatei='" & txtKKonzernDatei.Text & "', K_GID=" & cboK_GID.Items(cboK_GID.SelectedIndex).Value & " WHERE KID=" & Convert.ToString(txtKID.Text)
com.CommandText = strSQL
Dim AnzDS As Integer
AnzDS = com.ExecuteNonQuery()
End If
con.Close()
End Function
Sub OnRowUpdated(ByVal sender As Object, ByVal e As OleDbRowUpdatedEventArgs)
Dim nid As Long
Dim cmd As OleDbCommand = New OleDbCommand("SELECT @@IDENTITY", con)
If e.StatementType = StatementType.Insert Then
nid = CLng(cmd.ExecuteScalar())
e.Row("KID") = nid
End If
End Sub
Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
Server.Transfer("FileDialog.aspx")
End Sub
End Class
*** Dateiauswahl ****************************************
Imports System.IO
Public Class FileDialog
Inherits PDB.PageBase
Protected WithEvents files As System.Web.UI.WebControls.DataList
Protected WithEvents lblHistorie1 As System.Web.UI.WebControls.Label
Public z As Kunde
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Dim BaseDir As String
#Region " Vom Web Form Designer generierter Code "
'Dieser Aufruf ist für den Web Form-Designer erforderlich.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: Diese Methode ist für den Web Form-Designer erforderlich
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Hier Benutzercode zur Seiteninitialisierung einfügen
If Not IsPostBack Then
z = CType(context.Handler, Kunde)
BaseDir = "c:\"
files.DataSource = Directory.GetFiles(BaseDir)
DataBind()
End If
End Sub
Sub files_ItemCommand(ByVal sender As Object, ByVal e As DataListCommandEventArgs) Handles files.ItemCommand
Dim txtFile As TextBox
txtFile = z.FindControl("txtKKonzernDatei")
txtFile.Text = "test"
Dim js As JavaScript = New JavaScript()
js.AppendLine("window.close();")
Me.RegisterStartupScript("Close", js.ToString())
End Sub
End Class
Der Fehler erscheint in dieser Zeile
txtFile = z.FindControl("txtKKonzernDatei")
Gruß
Christian
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!