Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zwei EditItemTemplates im DataGridView

Empfohlene Antworten

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

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>

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();

            }


        }

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.