DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: ASP.NET2.0 | Thema: AW: AW: Update der DropDownlist (Template Item) im GridView | Von: Kerstin Arkenberg ( 27.02.2007 16:03)

Ok, also nochmal:
<div>
<asp:ObjectDataSource ID="ObjectDataSource1"
runat="server"
InsertMethod="InsertStrasse"
SelectMethod="GetStrasse"
TypeName="StrasseDAL"
UpdateMethod="UpdateStrasse" >
<UpdateParameters>
<asp:Parameter Name="Code" Type="String" />
<asp:Parameter Name="Hoehe" Type="Int32" />
<asp:Parameter Name="Km1" Type="Decimal" />
<asp:Parameter Name="StrkSeq" Type="Int32" />
<asp:Parameter Name="LogCrTime" Type="DateTime" />
<asp:Parameter Name="AktivJn" Type="Boolean" />
<asp:Parameter Name="StrasseSeq" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="code" Type="String" />
<asp:Parameter Name="hoehe" Type="Int32" />
<asp:Parameter Name="km1" Type="Decimal" />
<asp:Parameter Name="strkSeq" Type="Int32" />
<asp:Parameter Name="aktivJn" Type="Boolean" />
</InsertParameters>
</asp:ObjectDataSource>

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server"
DeleteMethod="DeleteNameStrasse"
InsertMethod="InsertNameStrasse"
SelectMethod="GetNameStrasse"
TypeName="NameStrasseDAL"
UpdateMethod="UpdateNameStrasse">
<DeleteParameters>
<asp:Parameter Name="original_namesSeq" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="original_namesSeq" Type="Int32" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="nameOrder" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="strasseSeq" Type="Int32" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="nameOrder" Type="Int32" />
</InsertParameters>
</asp:ObjectDataSource>

<asp:ObjectDataSource
ID="ObjectDataSource3"
runat="server"
SelectMethod="GetSchlStrassenKategorie"
TypeName="SchlStrassenKategorieDAL">
</asp:ObjectDataSource>

<asp:GridView ID="GridView1" runat="server"
DataSourceID="ObjectDataSource1"
AutoGenerateColumns="False"
OnRowDataBound="GridView1_RowDataBound"
HeaderStyle-BackColor="Bisque"
DataKeyNames="StrasseSeq" >
<Columns>
<asp:CommandField ButtonType="Button" EditText="Ändern" ShowEditButton="True"/>
<asp:BoundField DataField="Code" HeaderText="Code" SortExpression="Code" />
<asp:TemplateField HeaderText="Namen">
<ItemTemplate>
<asp:BulletedList ID="bltNamen" Runat="server" >
</asp:BulletedList>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Hoehe" HeaderText="Hoehe" SortExpression="Hoehe" />
<asp:BoundField DataField="LogCrTime" HeaderText="Datum" SortExpression="LogCrTime" />
<asp:BoundField DataField="Km1" HeaderText="Km" SortExpression="Km1" />
<asp:TemplateField HeaderText="Art" SortExpression="Strart">
<ControlStyle BackColor="Beige" />
<ItemTemplate>
<asp:DropDownList ID="cmbStrKat" runat="server" DataSourceID="ObjectDataSource3" DataTextField="Strart" DataValueField="StrkSeq" OnSelectedIndexChanged="cmbStrArt_OnSelectedIndexChanged"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="AktivJn" HeaderText="Aktiv" SortExpression="AktivJn" />
</Columns>

Hier wäre der Teil, in dem der richtige Eintrag selektiert wird:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl = (DropDownList)e.Row.FindControl("cmbStrKat");
ddl.SelectedValue = ((Strasse)e.Row.DataItem).StrkSeq.ToString();
}}

und hier soll das Update generiert werden:

public static void UpdateStrasse(string Code, int? Hoehe, decimal? Km1, int strkSeq, DateTime LogCrTime, bool AktivJn, int StrasseSeq)
{
string sql = "UPDATE STRASSE " +
"SET CODE = :Code, " +
" HOEHE = :Hoehe, " +
" KM_1 = :Km1, " +
" STRK_SEQ = :StrkSeq, " +
" LOG_CR_TIME = :LogCrTime, " +
" AKTIV_JN = :AktivJn " +
"WHERE " +
" STRASSE_SEQ = :OriginStrasseSeq ";
using (OracleConnection myConnection = new OracleConnection("Password=***;User ID=***;Data Source=***"))
{
OracleCommand myCommand = new OracleCommand(sql, myConnection);
myCommand.Parameters.Add(new OracleParameter(":OriginStrasseSeq", StrasseSeq));
myCommand.Parameters.Add(new OracleParameter(":Code", Code));
if (Hoehe.HasValue == false)
myCommand.Parameters.Add(new OracleParameter(":Hoehe", DBNull.Value));
else
myCommand.Parameters.Add(new OracleParameter(":Hoehe", Hoehe));
if (Km1.HasValue == false)
myCommand.Parameters.Add(new OracleParameter(":Km1", DBNull.Value));
else
myCommand.Parameters.Add(new OracleParameter(":Km1", Km1));
myCommand.Parameters.Add(new OracleParameter(":StrkSeq", strkSeq));
myCommand.Parameters.Add(new OracleParameter(":LogCrTime", LogCrTime));
myCommand.Parameters.Add(new OracleParameter(":AktivJn", AktivJn));
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
}

Der Punkt ist, in der Update-Funktion ist der übergebene Parameter StrkSeq (aus der DropDownListe) leer. Ich muss also irgendwie irgendwo diesen Wert entweder per Hand setze oder einen zweiten Update für diese Tabelle generieren?

Gruß
Kesrtin


Betreff Von Datum
AW: AW: AW: Update der DropDownlist (Template Item) im...
ist zwar nicht die passende ANtowrt (oder doch?) aber warum machst du keine deklarative Datenbindung statt:<br>protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) <br>{ <br>if...
Hannes Preishuber 28.02.2007 07:44
AW: AW: AW: AW: Update der DropDownlist (Template...
Hey Hannes,<br>ich kann´s nicht glauben. Das war es tatsächlich! Ich wollte nur ausprobieren, ob dieser einfachere Weg auch funktioniert. Und promt geht anschließend auch der Update. Was ich nicht...
Kerstin Arkenberg 28.02.2007 09:24
AW: AW: AW: AW: AW: Update der DropDownlist...
Könnte sein das im Postback die Liste neu gefüllt wird bevor du den "alten" eintrag neu ausgelesen hast
Hannes Preishuber 28.02.2007 10:04

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Advanced Developers Conference vom 14.-15. Februar 2011

© Copyright 2003 ppedv AG