Avatar billede eskeeske Nybegynder
18. juni 2003 - 16:24 Der er 20 kommentarer

At tilføje knapper dynamisk

Hvis man tilføjer en knap dynamisk og sætter en on_click event på knappen. Så bliver eventet ikke kaldt med mindre man danner knappen igen i page_load.

Mit problem er at jeg har en table som jeg fylder med en masse linjer som hver har en delete knap, som sletter den pågældende linje i tabelen.

Hvordan kan man lave sådan nogen delete knapper.

Jeg har prøvet sådan noget med at fylde tabelen ved postback.

Og så slette den igen i staten af delete event metoden, så slette rækken og derpå fylde tabbelen igen.

Men det er en underlig rodet løsning, og desuden virker det ikke ordentligt. Nogen gange bliver evenetet ikke kaldt alligevel, og det er lidt tilfældigt hvilke farver knapperne (som er linkbuttons) får ude i HTML´s (altså om der er klikket på dem før)

Håber at nogen kan forstå mit spørsmål og hjælpe med en god ide eller forklaring.
Avatar billede niemeyer Nybegynder
18. juni 2003 - 20:53 #1
Nedenstående er en standard editable datagrid skabelon. Du kan sætte Buttontype property'en for ButtonColumn klassen til Pushbutton hvis du vil ændre udseendet. Hvis det ikke skal være muligt at tilføje nye rows eller editere eksisterende, så sætter du bare visible property'en til False der. Det her eksemple bruger Pubs databasen fra SQL serveren men du kan let tilpasse den til dine egne data.

HTH,
Niels

<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">

    ' TODO: update the ConnectionString and Command values for your application
   
    Dim ConnectionString As String = "server=(local);database=pubs;trusted_connection=true"
    Dim SelectCommand As String = "SELECT au_id, au_lname, au_fname from Authors"
   
    Dim isEditing As Boolean = False
   
    Sub Page_Load(Sender As Object, E As EventArgs)
   
        If Not Page.IsPostBack Then
   
            ' Databind the data grid on the first request only
            ' (on postback, bind only in editing, paging and sorting commands)
   
            BindGrid()
   
        End If
   
    End Sub
   
    ' ---------------------------------------------------------------
    '
    ' DataGrid Commands: Page, Sort, Edit, Update, Cancel, Delete
    '
   
    Sub DataGrid_ItemCommand(Sender As Object, E As DataGridCommandEventArgs)
   
        ' this event fires prior to all of the other commands
        ' use it to provide a more graceful transition out of edit mode
   
        CheckIsEditing(e.CommandName)
   
    End Sub
   
    Sub CheckIsEditing(commandName As String)
   
        If DataGrid1.EditItemIndex <> -1 Then
   
            ' we are currently editing a row
            If commandName <> "Cancel" And commandName <> "Update" Then
   
                ' user's edit changes (If any) will not be committed
                Message.Text = "Your changes have not been saved yet.  Please press update to save your changes, or cancel to discard your changes, before selecting another item."
                isEditing = True
   
            End If
   
        End If
   
    End Sub
   
    Sub DataGrid_Edit(Sender As Object, E As DataGridCommandEventArgs)
   
        ' turn on editing for the selected row
   
        If Not isEditing Then
   
            DataGrid1.EditItemIndex = e.Item.ItemIndex
            BindGrid()
   
        End If
   
    End Sub
   
    Sub DataGrid_Update(Sender As Object, E As DataGridCommandEventArgs)
   
        ' update the database with the new values
   
        ' get the edit text boxes
        Dim id As String = CType(e.Item.Cells(2).Controls(0), TextBox).Text
        Dim lname As String = CType(e.Item.Cells(3).Controls(0), TextBox).Text
        Dim fname As String = CType(e.Item.Cells(4).Controls(0), TextBox).Text
   
        ' TODO: update the Command value for your application
        Dim myConnection As New SqlConnection(ConnectionString)
        Dim UpdateCommand As SqlCommand = new SqlCommand()
        UpdateCommand.Connection = myConnection
   
        If AddingNew = True Then
            UpdateCommand.CommandText = "INSERT INTO authors(au_id, au_lname, au_fname, contract) VALUES (@au_id, @au_lname, @au_fname, 0)"
        Else
            UpdateCommand.CommandText = "UPDATE authors SET au_lname = @au_lname, au_fname = @au_fname WHERE au_id = @au_id"
        End If
   
        UpdateCommand.Parameters.Add("@au_id", SqlDbType.VarChar, 11).Value = id
        UpdateCommand.Parameters.Add("@au_lname", SqlDbType.VarChar, 40).Value = lname
        UpdateCommand.Parameters.Add("@au_fname", SqlDbType.VarChar, 20).Value = fname
   
        ' execute the command
        Try
            myConnection.Open()
            UpdateCommand.ExecuteNonQuery()
   
        Catch ex as Exception
            Message.Text = ex.ToString()
   
        Finally
            myConnection.Close()
   
        End Try
   
        ' Resort the grid for new records
        If AddingNew = True Then
            DataGrid1.CurrentPageIndex = 0
            AddingNew = false
        End If
   
        ' rebind the grid
        DataGrid1.EditItemIndex = -1
        BindGrid()
   
    End Sub
   
    Sub DataGrid_Cancel(Sender As Object, E As DataGridCommandEventArgs)
   
        ' cancel editing
   
        DataGrid1.EditItemIndex = -1
        BindGrid()
   
        AddingNew = False
   
    End Sub
   
    Sub DataGrid_Delete(Sender As Object, E As DataGridCommandEventArgs)
   
        ' delete the selected row
   
        If Not isEditing Then
   
            ' the key value for this row is in the DataKeys collection
            Dim keyValue As String = CStr(DataGrid1.DataKeys(e.Item.ItemIndex))
   
            ' TODO: update the Command value for your application
            Dim myConnection As New SqlConnection(ConnectionString)
            Dim DeleteCommand As New SqlCommand("DELETE from authors where au_id='" & keyValue & "'", myConnection)
   
            ' execute the command
            myConnection.Open()
            DeleteCommand.ExecuteNonQuery()
            myConnection.Close()
   
            ' rebind the grid
            DataGrid1.CurrentPageIndex = 0
            DataGrid1.EditItemIndex = -1
            BindGrid()
   
        End If
   
    End Sub
   
    Sub DataGrid_Page(Sender As Object, E As DataGridPageChangedEventArgs)
   
        ' display a new page of data
   
        If Not isEditing Then
   
            DataGrid1.EditItemIndex = -1
            DataGrid1.CurrentPageIndex = e.NewPageIndex
            BindGrid()
   
        End If
   
    End Sub
   
    Sub AddNew_Click(Sender As Object, E As EventArgs)
   
        ' add a new row to the end of the data, and set editing mode 'on'
   
        CheckIsEditing("")
   
        If Not isEditing = True Then
   
            ' set the flag so we know to do an insert at Update time
            AddingNew = True
   
            ' add new row to the end of the dataset after binding
   
            ' first get the data
            Dim myConnection As New SqlConnection(ConnectionString)
            Dim myCommand As New SqlDataAdapter(SelectCommand, myConnection)
   
            Dim ds As New DataSet()
            myCommand.Fill(ds)
   
            ' add a new blank row to the end of the data
            Dim rowValues As Object() = {"", "", ""}
            ds.Tables(0).Rows.Add(rowValues)
   
            ' figure out the EditItemIndex, last record on last page
            Dim recordCount As Integer = ds.Tables(0).Rows.Count
   
            If recordCount > 1 Then
   
                recordCount -= 1
                DataGrid1.CurrentPageIndex = recordCount \ DataGrid1.PageSize
                DataGrid1.EditItemIndex = recordCount Mod DataGrid1.PageSize
   
            End If
   
            ' databind
            DataGrid1.DataSource = ds
            DataGrid1.DataBind()
   
        End If
   
   
    End Sub
   
    ' ---------------------------------------------------------------
    '
    ' Helpers Methods:
    '
   
    ' property to keep track of whether we are adding a new record,
    ' and save it in viewstate between postbacks
   
    Property AddingNew() As Boolean
   
        Get
            Dim o As Object = ViewState("AddingNew")
            If o Is Nothing Then
                Return False
            End If
            Return CBool(o)
        End Get
   
        Set(ByVal Value As Boolean)
            ViewState("AddingNew") = Value
        End Set
   
    End Property
   
    Sub BindGrid()
   
        Dim myConnection As New SqlConnection(ConnectionString)
        Dim myCommand As New SqlDataAdapter(SelectCommand, myConnection)
   
        Dim ds As New DataSet()
        myCommand.Fill(ds)
   
        DataGrid1.DataSource = ds
        DataGrid1.DataBind()
   
    End Sub

</script>
<html>
<head>
</head>
<body style="FONT-FAMILY: arial">
    <h2>Editable Data Grid
    </h2>
    <hr size="1" />
    <form runat="server">
        <asp:datagrid id="DataGrid1" runat="server" width="80%" CellSpacing="1" GridLines="None" CellPadding="3" BackColor="White" ForeColor="Black" OnPageIndexChanged="DataGrid_Page" PageSize="6" AllowPaging="true" OnDeleteCommand="DataGrid_Delete" OnCancelCommand="DataGrid_Cancel" OnUpdateCommand="DataGrid_Update" OnEditCommand="DataGrid_Edit" OnItemCommand="DataGrid_ItemCommand" DataKeyField="au_id">
            <HeaderStyle font-bold="True" forecolor="white" backcolor="#4A3C8C"></HeaderStyle>
            <PagerStyle horizontalalign="Right" backcolor="#C6C3C6" mode="NumericPages" font-size="smaller"></PagerStyle>
            <ItemStyle backcolor="#DEDFDE"></ItemStyle>
            <FooterStyle backcolor="#C6C3C6"></FooterStyle>
            <Columns>
                <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit" ItemStyle-Font-Size="smaller" ItemStyle-Width="10%"></asp:EditCommandColumn>
                <asp:ButtonColumn Text="Delete" CommandName="Delete" ItemStyle-Font-Size="smaller" ItemStyle-Width="10%"></asp:ButtonColumn>
            </Columns>
        </asp:datagrid>
        <br />
        <asp:LinkButton id="LinkButton1" onclick="AddNew_Click" runat="server" Font-Size="smaller" Text="Add new item"></asp:LinkButton>
        <br />
        <br />
        <asp:Label id="Message" runat="server" width="80%" enableviewstate="false" forecolor="red"></asp:Label>
    </form>
</body>
</html>
Avatar billede eskeeske Nybegynder
19. juni 2003 - 00:17 #2
Jeg kan ikke bruge en datagrid eller ligende i den givne situation.

Så flere svar er stadig meget velkomne.

Jeg skal kunne tilføje n knapper dynamisk, og derefter reagerer på serveren i deres onclick event, og derefter generere en nye side.
Avatar billede burningice Nybegynder
19. juni 2003 - 15:16 #3
eskeeske>> nu fortæller du hverken hvordan du laver din tabel, eller hvilket sprog du bruger... men følgende burde give dig et hint om hvordan man kan gøre det:

void Page_Load(object sender, EventArgs e) {
    for (i = 0; i < 10; i++) {
      Button b = new Button();

      b.Name = "Button"+ i;
      b.Text = "Knap nr. "+ i;
      b.Click += new System.EventHandler(DynamicButton_Click);

      this.Controls.Add(b);
    }
}

void DynamicButton_Click(object sender, EventArgs e) {
    Button b = (Button)sender;
   
    Response.Write("Du klikkede på "+ b.Name);
}
Avatar billede burningice Nybegynder
19. juni 2003 - 15:32 #4
det lader til at koden skal i init, og ikke load :) (http://www.burningice.dk/eksperten.dk/366414/Default.aspx)

<script language="c#" runat="server">

void Page_Init(object sender, EventArgs e) {

  for (int i = 0; i < 10; i++) {
      Button b = new Button();

      b.ID = i.ToString();
      b.Text = "Knap nr. "+ i;
      b.Click += new System.EventHandler(DynamicButton_Click);

      buttons.Controls.Add(b);
    }
}

void Page_Load(object sender, EventArgs e) {
  if (!Page.IsPostBack) {

    }
}

void DynamicButton_Click(object sender, EventArgs e) {
    Button b = (Button)sender;
   
    info.Text = "Du klikkede på knap "+ b.ID;
}

</script>

<form runat="server">
<asp:placeholder id="buttons" runat="server" />

<br />
</form>

<asp:label id="info" runat="server" />
Avatar billede eskeeske Nybegynder
19. juni 2003 - 16:21 #5
Super tak for jeres hjælp. Men i svarer jo blot på hvordan man tilføjer en knap dynamisk, det kan jeg sagtens finde ud af.

Mit problem er at jeg vil tilføje n knapper dynamisk med onclick events tilknyttet (de kalder alle sammen samme onclick event).

Det kan man ikke, hvis man vil skal man tilføje dem hvergang i page_load eller page_init, men det er noget rod synes jeg fordi jeg ikke nødvendig vis skal genere den samme side efter der er blevet klikket på en af knapperne.

p.s. Jeg koder c#

Flere svar er stadig velkomne.
Avatar billede burningice Nybegynder
19. juni 2003 - 16:35 #6
eskeeske>> du bliver nødt til at knytte alle knapperne til samme OnClick-event, da du jo netop ikke ved hvor mange knapper der bliver genereret. Jeg kan ikke se, hvad det er du nu ikke kan finde ud af. Jeg har givet dig koden for, både at generere knapper dynamisk, knytte dem til et event, reagere på et klik og gøre noget alt efter hvilken knap der blev trykket på.

Er det ikke netop det du vil?
Avatar billede burningice Nybegynder
19. juni 2003 - 16:41 #7
og hvad får dig til at sige, at man ikke kan tilføje en event, hvis man genererer knapperne i Page_Init ?! Har du overhovedet kigget på mit link?? Fedt at jeg åbenbart har gjort noget, som åbenbart ikke kan lade sig gøre
Avatar billede eskeeske Nybegynder
19. juni 2003 - 16:47 #8
Jeg har kigget på dit link, prøv evt at læs mit spørsmål igen.

http://www.burningice.dk/eksperten.dk/366414/Default.aspx

Er en fin side, kan du lave den om således at den knap du trykker på bliver slettet istedet for at få en nye farve. Fordi det er præcis det der er mit problem.

Med Venlig Hilsen
Avatar billede burningice Nybegynder
19. juni 2003 - 16:55 #9
at fjerne: http://www.burningice.dk/eksperten.dk/366414/Default.aspx

i og med, at mine knapper dog ikke er sååå dynamiske igen (jeg har jo hardcoded min for-løkke), så vil jeg ikke kunne fjerne mere end en knap af gangen, da den vil komme frem igen, når jeg fjerner en anden knap
Avatar billede eskeeske Nybegynder
19. juni 2003 - 17:03 #10
Men det jeg har behov for er en side med n knapper (n vil sige at det kan være alt fra 1 knap og opefter) når man så klikker på knap x kommer der en nye side frem hvor alle de andre knapper er der men knap x er forsvundet (en delete knap). Det er overhovedet ikke så indlysende for mig hvordan jeg skal lave en sådan løsning med asp.net, jeg tror der er en eller anden helt central ting i asp.net jeg ikke er klar over.

Hvis du har tid så synes jeg du skulle prøve at lave din side på
http://www.burningice.dk/eksperten.dk/366414/Default.aspx
om. Så tror jeg selv du vil opdage at det ikke er så let igen.

p.s. Jeg forstår ikke helt hvad du mener med dit indlæg klokken 16.55.42. Det er kun nødvendigt for mig at fjerne en knap ad gangen, men jeg kan ikke se at det skulle være det springende punkt.

Med Venlig Hilsen
Avatar billede burningice Nybegynder
19. juni 2003 - 17:19 #11
sådan som jeg har forstået det, så bliver dine knapper genereret ud fra f.eks. en database, ikke ? det der så skal ske når du trykker på en knap, er, at de data den knap representerer skal slettes fra databasen, og siden skal genereres på ny med det antal knapper der nu engang skal være... eller er det mig der er helt galt på den ?
Avatar billede eskeeske Nybegynder
19. juni 2003 - 17:22 #12
Det er helt korekt forstået, hvor er du god til at forklare. Men man behøves ikke at have nogen database i sving for at konstaterer problemet.
Avatar billede burningice Nybegynder
19. juni 2003 - 18:01 #13
jeg har nu fået lavet min side, men et dataset, som knapperne bliver genereret ud fra. Når man trykker på en knap, bliver den post knappen representerer slettet, og siden skulle gerne loade med en knap mindre.
Det virker også nogenlunde efter hensigten... bortset fra en lille ting, og det er, at siden åbenbart er lidt sløv i optrækket :/ Når man trykker på en knap loader siden igen med det antal knapper som før... hvis man til gengæld trykker en gang på f5 eller bare loader siden i en ny browser, så er knappen rigtig nok forsvundet. Meget underligt, og hvorfor den gør det sådan kan jeg ikke umiddelbart svare på :(

http://www.burningice.dk/eksperten.dk/366414/remove_from_ds.aspx
Avatar billede burningice Nybegynder
19. juni 2003 - 18:22 #14
HA !... :) så fik jeg det til at virke... jeg skal såmen bare huske at kalde this.OnInit() efter at jeg har lavet mine ændringer :)

http://www.burningice.dk/eksperten.dk/366414/remove_from_ds.aspx


<%@Import Namespace="System.Data" %>

<script language="c#" runat="server">

DataSet ds;

void Page_Init(object sender, EventArgs e) {
  ds = (DataSet)Session["DataSet"];

  RenderButtons();

}

void DynamicButton_Click(object sender, EventArgs e) {
  int id = int.Parse(((Button)sender).ID);

  GetRow(id).Delete();
  ds.AcceptChanges();
 
  buttons.Controls.Clear();
  this.OnInit(e);
}

DataRow GetRow(int id) {
  foreach (DataRow dr in ds.Tables[0].Rows) {
      if (dr["id"].ToString() == id.ToString()) {
        return dr;
      }
  }

  throw new Exception();
}

void RenderButtons() {
  if (ds != null) {
    foreach (DataRow dr in ds.Tables[0].Rows) {
        AddButton(dr);
    }
  }
}

void AddButton(DataRow dr) {

  Button b = new Button();
  b.ID = dr["id"].ToString();
  b.Text = (string)dr["data"];
  b.BackColor = System.Drawing.Color.White;
  b.BorderColor = System.Drawing.Color.White;
  b.Click += new System.EventHandler(DynamicButton_Click);
 
  buttons.Controls.Add(b);
  buttons.Controls.Add(new LiteralControl("<br /> <br />"));

}

void btnMakeTable_Click(object sender, EventArgs e) {
  DataTable dt = new DataTable();

  dt.Columns.Add(new DataColumn("id", typeof(int)));
  dt.Columns.Add(new DataColumn("data", typeof(string)));

  for (int i = 0; i < 10; i++) {
    DataRow dr = dt.NewRow();
    dr["id"] = i;
    dr["data"] = "data for row "+ i;
    dt.Rows.Add(dr);
  }
 
  DataSet ds = new DataSet();
  ds.Tables.Add(dt);

  Session["DataSet"] = ds;

  buttons.Controls.Clear();
  this.OnInit(e);
}

</script>

<form runat="server">
<asp:placeholder id="buttons" runat="server" />

<br /><br />
<asp:button id="maketable" onclick="btnMakeTable_Click" Text="maketable" runat="server" />
</form>

<asp:label id="info" runat="server" />
Avatar billede predict Nybegynder
16. juli 2003 - 10:08 #15
Var det så ikke en ide at give manden hans points??
Avatar billede eskeeske Nybegynder
16. juli 2003 - 14:29 #16
Der er ingen Svar i spørsmålet, så det er svært at give "manden hans points". Jeg har med tiden selv fundet en smart og enkel måde at omgås problemet på.

predict -> lad være med at surf rund og læg meningsløse indlæg rundt omkring, fordi det betyder jo at man modtager en email, som man skal bruge tid på at læse. En gang imellem kigger jeg alle mine spørsmål igennem om der er nogen jeg har glemt at aceptere svar på, og iøvrigt får man jo også en automatisk email fra eksperten.dk på et tidspunkt.
Avatar billede burningice Nybegynder
16. juli 2003 - 20:38 #17
eskeeske>> hvis du ikke kunne bruge mit forslag til løsning, så sig dog hvad problemet er, og hvis du evt. skulle komme frem til en anden løsning, så sig hvad det er. Man føler sig meget meget dum, at bruge tid på at hjælpe en person, som pludselig lægger et indlæg som lyder i retningen af "jeg har fundet en anden løsning"
Avatar billede eskeeske Nybegynder
16. juli 2003 - 21:35 #18
Når jeg skrev der "ingen svar var i spørsmålet" mente jeg nu blot at du kun har svaret i kommentarer. Så hvis du kommer med et svar skal dine point komme fluks.

Jeg synes det er noget rod alt det med at skulle tilføje knapperne igen og det hele virker ikke så asp.net agtigt.

Jeg har lavet en løsning hvor jeg tilføjer en delete-knap. Giver den en id som hedder f.eks. delete_23 . I pageload læser jeg simpelhen i requestet om der er trykket på en sådan knap, og i givet fald sletter jeg den til id=23 tilhørende data. Det er godt nok heller ikke så .net agtigt med betydeligt lettere at bevare overblikket over.

Slut herfra.
Avatar billede burningice Nybegynder
11. januar 2005 - 02:10 #19
hm... var det noget med et svar... hehe

Hele det her scenario kan da løses meget nemmere med en linkbutton og eventbubbling?

Eksempel

Kode:

public void myDL_Delete(object sender, DataListCommandEventArgs e)
        {
            int intId = Convert.ToInt32(((HtmlInputHidden)e.Item.FindControl("uploadid")).Value);
       
            OleDbConnection objConn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+ Server.MapPath("../data/db.mdb") +";");
            OleDbCommand objCommand = new OleDbCommand("DELETE * FROM [tblUploads] WHERE id = "+ intId +"", objConn);
       
            objConn.Open();

            objCommand.ExecuteNonQuery();

            objConn.Close();
               
            myDL.EditItemIndex = -1;
            doPopulate();
        }

selve aspx'en:

<asp:DataList id="myDL"
    RepeatColumns="1"
    OnEditCommand="myDL_Edit"
    OnUpdateCommand="myDL_Update"
    OnCancelCommand="myDL_Cancel"
    OnDeleteCommand="myDL_Delete"
    CellSpacing="1"
    CellPadding="0"
    Width="900"
    ShowHeader="true"
    runat="server">
   
        <HeaderTemplate>
            <tr style="background-color:aabbcc">
                <th width="75">Type</th>
                <th width="250">Titel</th>
                <th width="80">Status</th>
                <th width="315">Location</th>
                <th width="80">Uploaded af</th>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
            <tr style="background-color:ccbbaa">
                <input id="uploadid" type="hidden" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' runat="server" />
                <td width="75"><%# DataBinder.Eval(Container.DataItem, "type") %></td>
                <td width="250"><%# DataBinder.Eval(Container.DataItem, "titel") %></td>
                <td width="80"><%# DataBinder.Eval(Container.DataItem, "status") %></td>
                <td width="315"><%# DataBinder.Eval(Container.DataItem, "location") %></td>
                <td width="80"><%# DataBinder.Eval(Container.DataItem, "user") %></td>
                <td width="50"><asp:linkbutton CommandName="Edit" runat="server">Edit</asp:linkbutton></td>
                <td width="50"><asp:linkbutton CommandName="Delete" runat="server">Delete</asp:linkbutton></td>
            </tr>
        </ItemTemplate>
        <EditItemTemplate>
            <tr style="background-color:ccbbaa">
                <input id="uploadid" type="hidden" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' runat="server" />
                <td width="75"><asp:DropDownList id="DropDown1" DataTextField="type" DataValueField="type" DataSource='<%# doGetTypes() %>' runat="server" /></td>
                <td width="250"><input style="border: 1px solid black;" id="titel" type="text" size="25" value='<%# DataBinder.Eval(Container.DataItem, "titel")%>' runat="server" /></td>
                <td width="80"><input style="border: 1px solid black;" id="status" type="text" size="5"  value='<%# DataBinder.Eval(Container.DataItem, "status")%>' runat="server" /></td>
                <td width="315"><input style="border: 1px solid black;" id="location" type="text" size="30" value='<%# DataBinder.Eval(Container.DataItem, "location")%>' runat="server" /></td>
                <td width="80"><%# DataBinder.Eval(Container.DataItem, "user") %></td>
                <td width="50"><asp:linkbutton CommandName="Update" runat="server">Update</asp:linkbutton></td>
                <td width="50"><asp:linkbutton CommandName="Cancel" runat="server">Cancel</asp:linkbutton></td>
            </tr>
        </EditItemTemplate>
    </asp:DataList>
Avatar billede burningice Nybegynder
11. januar 2005 - 02:11 #20
doPopulate sørger bare for at rebinde datalisten igen

        void doPopulate()
        {
            OleDbConnection objConn = new OleDbConnection(mdb);
            OleDbCommand objCommand = new OleDbCommand("SELECT tblUploads.id, tblUsers.user, tblUploads.titel, tblUploads.type, tblUploads.status, tblUploads.location FROM tblUsers INNER JOIN tblUploads ON tblUsers.id=tblUploads.uploadedby WHERE (((tblUsers.id)= "+ Context.User.Identity.Name +"))", objConn);
       
            objConn.Open();
       
            myDL.DataSource = objCommand.ExecuteReader();
            myDL.DataBind();
       
            objConn.Close();
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester