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 |
|
|
Hannes
Preishuber
|
28.02.2007 07:44 |
|
|
Kerstin
Arkenberg
|
28.02.2007 09:24 |
|
|
Hannes
Preishuber
|
28.02.2007 10:04 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!