Zum Inhalt springen

Zwei EditItemTemplates im DataGridView


Empfohlene Beiträge

Geschrieben

Hallo, ich habe noch ein weiteres Problem bei dem ich einfach nicht weiter komme.

Ich habe auf meiner asp-Anwendung ein DataGridView. Dies zeigt anfangs halt Labels an. Als EditItemTemplate habe ich eine DropDownListe sowie eine Textbox und einen Button. (Soll insgesamt eine Art editierbare DropdownListe darstellen die es ja so nicht bei asp gibt). Er zeigt das auch brav so an wie ich mir das vorstelle. (Wenn ein gewisses Item der DDL ausgewählt wird erscheint die tbx...)

Problem ist jetzt nur das DataBinding. Er speichert einfach nur das was in der tbx steht. Die DropDownListe wird vollkommen ignoriert. Entferne ich die tbx aus den EditItemTemplates bzw. nur die "DataBindingAnweisung" so wird das aus der DDL gespeichert.

Mir ist schon klar das er also immer nur den "letzten" Komponenten zum Speichern nutz. Ich brauche aber entweder oder.

Hat jemand ne Idee?

Danke

Geschrieben

mh, so in der Art:

<edititemtemplate>

              <asp:DropDownList id="dd_list" selectedValue='<%#Bind("Name")%>'runat="server"/>

              <asp:TextBox id="tbx" Text='<%#Bind("Name")%>'runat="server"/>

              <asp:Button id="btn" runat="server"/>

</edititemtemplate>

Geschrieben

genauer gesagt, sieht der orignal-code so aus:

<asp:TemplateField HeaderText="Feiertag">

                <ItemTemplate>

                    <asp:Label ID="lbl_holiday" runat="server"  Text='<%# Eval("Feiertag") %>'></asp:Label>

                </ItemTemplate>

                <EditItemTemplate>

                <asp:DropDownList ID="dd_holiday" runat="server" SelectedValue='<%#Bind("Feiertag") %>' AppendDataBoundItems="true" DataSourceID="sqlDS_day" DataValueField="Feiertag" AutoPostBack="True" OnSelectedIndexChanged="dd_holiday_change"/>

                <asp:TextBox ID="tb_new" runat="server" Text='<%#Bind("Feiertag") %>'DataSourceID="sqlDS_day" DataValueField="Feiertag" Visible="False" />

                <asp:ImageButton ID="ibtn_back" runat="server" ImageUrl="~/Images/Back.gif" Visible="False" onclick="ibtn_back_click"/>

                </EditItemTemplate>

            </asp:TemplateField>
er nimmt anscheinden nur das zuletzt hinzugefügte und "bindet" das an die DB. Ich habe schon versucht das ganze über RowEditing zu lösen, aber es will einfach nicht klappen.
protected void gv_general_RowUpdating(object sender, GridViewUpdateEventArgs e)

        {          

            String holiday = "";

            String date = ((Label)gv_general.Rows[gv_general.EditIndex].FindControl("lbl_date")).Text;


            if (((TextBox)gv_general.Rows[gv_general.EditIndex].FindControl("tb_new")).Visible)

            {

                holiday = ((TextBox)gv_general.Rows[gv_general.EditIndex].FindControl("tb_new")).Text;

            }

            else

            {

                holiday = ((DropDownList)gv_general.Rows[gv_general.EditIndex].FindControl("dd_holiday")).SelectedItem.Text;

            }


            db_update(date,holiday);

        }
und dann noch die update_methode:
protected void db_update(String _date, String _holiday)

        {


            String update_string = "UPDATE tbl_Feiertage SET Feiertag = '"+_holiday+"' WHERE Datum = '"+_date+"'";

            SqlConnection sqlConnection = new SqlConnection("server=xxx;uid=xxx;pwd=xxx;database=xxx");

            SqlCommand sqlCommand = null;


            try

            {

                sqlCommand = new SqlCommand(update_string);

                sqlCommand.Connection = sqlConnection;

                sqlConnection.Open();

                sqlCommand.ExecuteNonQuery();

            }

            catch (SqlException exc)

            {              


                lbl_fault.Text = exc.Errors[0].Number.ToString();

            }


            finally

            {

                sqlCommand.Connection.Close();

            }


        }

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...