Avatar billede yuksel Nybegynder
07. november 2003 - 11:20 Der er 39 kommentarer og
1 løsning

konvert label til textbox

hej til alle!

jeg har lavet en noget her og det virker OK!
men istedet for at den læsser databasen ind i nogen labels kan jeg så ikke få den til at visse i textboxe istedet for ?


<%@ Page Language="vb" Debug="true" %>
<%@ Import Namespace="System.Data.OleDB"%>

<script runat="server">
sub Page_Load
  Dim dbconn,sql,dbcomm,dbread, strConn
  strConn="Provider=Microsoft.Jet.OLEDB.4.0;data source=C:\webapp\bayram\data.mdb"
  dbconn=New OleDbConnection(strConn)
  dbconn.Open()
  sql="SELECT *FROM kunde"
  dbcomm=New OleDbCommand(sql,dbconn)
  dbread=dbcomm.ExecuteReader()
  kunde.DataSource=dbread
  kunde.DataBind()
  dbread.close()
  dbconn.close()
end sub
</script>





<html>
<head>
  <title>test</title>
</head>
    <body>
  <form runat="server">
    <asp:Repeater id="kunde" runat="server">
    <HeaderTemplate>
        <table border="0" width="80%" align="center">
        <tr bgcolor="#b0c4de">
        <th>Fornavn</th>
        <th>Efternavn</th>
        <th>adresse</th>
    <th>Postnr</th>
        <th>By</th>
        <th>Email</th>
        <th>Koen</th>
        <th>Oenskes</th>
        <th>Alder</th>
        </tr>
    </HeaderTemplate>
    <ItemTemplate>
          <tr bgcolor="#f0f0f0">
          <td><%#Container.DataItem("fornavn")%></td>
          <td><%#Container.DataItem("efternavn")%></td>
          <td><%#Container.DataItem("adresse")%></td>
      <td><%#Container.DataItem("postnr")%></td>
          <td><%#Container.DataItem("by")%></td>
          <td><%#Container.DataItem("email")%></td>
          <td><%#Container.DataItem("koen")%></td>
          <td><%#Container.DataItem("oenskes")%></td>
          <td><%#Container.DataItem("alder")%></td>
         
        <tr>
      </ItemTemplate>
      <FooterTemplate>
    </table>
    </FooterTemplate>
  </asp:Repeater>
  </form>
</body>
</html>
Avatar billede yuksel Nybegynder
07. november 2003 - 11:24 #1
soryy det er ikke et textbox men en editboks jeg mener
Avatar billede repsak Nybegynder
07. november 2003 - 11:24 #2
hvad med noget i stil med
<% dinTextbox.Text = Container.DataItem("by")%>
?
Avatar billede yuksel Nybegynder
07. november 2003 - 11:29 #3
skal lige prøve
Avatar billede yuksel Nybegynder
07. november 2003 - 11:30 #4
jeg har prøvet med
          <ASP:textbox id="fornavn" runat="server" rows=5 textmode="singleline"/>

men den læser ikke fra databasen !
Avatar billede yuksel Nybegynder
07. november 2003 - 11:32 #5
jo men den skal jo også erklæres i scriptet hvordan gøre jeg det =?
Avatar billede repsak Nybegynder
07. november 2003 - 11:35 #6
(hvorfor har du singleline og 5 rækker???)
hvad skal erklæres i scriptet?
Avatar billede yuksel Nybegynder
07. november 2003 - 11:41 #7
nu har jeg ændret noget her  !


<%@ Page Language="vb" Debug="true" %>
<%@ Import Namespace="System.Data.OleDB"%>

<script runat="server">
sub Page_Load
  Dim dbconn,sql,dbcomm,dbread, strConn
  strConn="Provider=Microsoft.Jet.OLEDB.4.0;data source=C:\webapp\bayram\data.mdb"
  dbconn=New OleDbConnection(strConn)
  dbconn.Open()
  sql="SELECT *FROM kunde"
  dbcomm=New OleDbCommand(sql,dbconn)
  dbread=dbcomm.ExecuteReader()
  kunde.DataSource=dbread
  kunde.DataBind()
  dbread.close()
  dbconn.close()


end sub
</script>





<html>
<head>
  <title>test</title>
</head>
    <body>
  <form runat="server">
    <asp:Repeater id="kunde" runat="server"
    <HeaderTemplate>
        <table border="0" width="80%" align="center">
        <tr bgcolor="#b0c4de">
        <th>Fornavn</th>
        <th>Efternavn</th>
        <th>adresse</th>
    <th>Postnr</th>
        <th>By</th>
        <th>Email</th>
        <th>Koen</th>
        <th>Oenskes</th>
        <th>Alder</th>
        </tr>
    </HeaderTemplate>
    <ItemTemplate>
          <tr bgcolor="#f0f0f0">
       
          <% tekst1.Text = Container.DataItem("fornavn")%>
     
         

        <tr>
      </ItemTemplate>
      <FooterTemplate>
    </table>
    </FooterTemplate>
  </asp:Repeater>
  </form>
</body>
</html>
Avatar billede yuksel Nybegynder
07. november 2003 - 11:42 #8
også får jeg denne fejl ="BC30451: Navnet 'tekst1' er ikke blevet erklæret.
"
Avatar billede yuksel Nybegynder
07. november 2003 - 11:47 #9
det forslag du kom med :
""" hvad med noget i stil med
<% dinTextbox.Text = Container.DataItem("by")%>
?"""
der skal man erklære "dintextbox.txt"
Avatar billede repsak Nybegynder
07. november 2003 - 11:50 #10
hmm er din plan at oprette textboxe til hver eneste repeat?
Avatar billede repsak Nybegynder
07. november 2003 - 11:52 #11
Jeg har set på din kode, og det ser ud som om at vi vil lave noget kundekartotek af en art, og ønsker at man skal kunne redigere i oplysningerne. Er det korrekt?
Avatar billede yuksel Nybegynder
07. november 2003 - 11:53 #12
min plan er at hver felt i min database skal loades ind i forskellige teksbox.
så det mening når jeg ændre noget i et af textbox'en skal jeg bare trykke på et knap der hedder "gem" så skal den bare gemme det hele i databasen.
Avatar billede yuksel Nybegynder
07. november 2003 - 11:53 #13
det er korrekt ! :)
Avatar billede repsak Nybegynder
07. november 2003 - 11:58 #14
ahhh nu ved jeg ikke hvorbevidst din løsning er lavet, men normalt laver man dette som så:
Læser hele databasen ind i en datalist/datagrid og ikke en repeater. (hvis jeg var dig ville jeg helt sikkert vælge datagrid)
Placerer nogle knapper: rediger, opdater osv. Så når du klikker på én af dem bliver felterne lavet om til tekstboxe, som du kan editere i. Det lyder kompliceret men er ret let. Hvilket program bruger du?
Avatar billede yuksel Nybegynder
07. november 2003 - 11:59 #15
jeg bruger notepad :)
Avatar billede repsak Nybegynder
07. november 2003 - 12:01 #16
dum idé
download gratis webmatrix: http://www.asp.net/webmatrix/download.aspx?tabindex=4
ellers bliver det MEGET svært for dig :-)
Avatar billede yuksel Nybegynder
07. november 2003 - 12:02 #17
jamen så må jeg jo prøve det! men skal først lige løse det her problem
Avatar billede repsak Nybegynder
07. november 2003 - 12:06 #18
æhhh nej du skal først hente webmatrix... Ellers bliver det et helvede for mig at forklare dig hvad du skal...(hvis du vil have hjælp)  ;-)
Avatar billede repsak Nybegynder
07. november 2003 - 12:07 #19
jeg kan også bare poste noget kode, men det lærer du ikke så meget af hehe
Avatar billede yuksel Nybegynder
07. november 2003 - 12:30 #20
ok, nu har jeg hentet programmet
Avatar billede yuksel Nybegynder
07. november 2003 - 12:35 #21
hvad skal jeg så ? skal jeg starte forfra !
Avatar billede repsak Nybegynder
07. november 2003 - 12:35 #22
cool - så åben en ny skabelon, og vælg
Datapage -> editable datagrid. Og så paste din egen kode ind, så kan du se hvad jeg mente :-)
Avatar billede yuksel Nybegynder
07. november 2003 - 12:52 #23
jeg får denne besked:  SQL Server findes ikke, eller adgang blev nægtet.
Avatar billede yuksel Nybegynder
07. november 2003 - 12:52 #24
<%@ 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">
    <font color="#8080ff" size="5"><strong>Kunder Tabel</strong></font>
    <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%" forecolor="red" enableviewstate="false"></asp:Label>
    </form>
</body>
</html>
Avatar billede repsak Nybegynder
07. november 2003 - 12:57 #25
husk at sætte din egen connectionstring ind ;-)
Avatar billede repsak Nybegynder
07. november 2003 - 12:58 #26
<%@ Import Namespace="System.Data.OleDB"%>
og husk også at skifte fra SQL-server til OLE DB
Avatar billede yuksel Nybegynder
07. november 2003 - 13:01 #27
hvor skal jeg sætte connection stringen hen
Avatar billede repsak Nybegynder
07. november 2003 - 13:08 #28
Dim ConnectionString As String = "server=(local);database=pubs;trusted_connection=true"
    Dim SelectCommand As String = "SELECT au_id, au_lname, au_fname from Authors"

skal udskiftes
ligesom du skal lægge din OLEDB kode ind istedet for sqlserver
(da jeg ikke kan kode Vb men kun C# kan jeg desværre ikke lave det for dig)
Avatar billede punnishment Nybegynder
11. november 2003 - 17:37 #29
kunne man ikke bare lave en

<asp:Label id="tFornavn" runat="server" />
istedet for
<%#Container.DataItem("fornavn")%>

også i page_onload

tilføjer du

tFornavn.text = Container.DataItem("fornavn")

--------------------------------
Hvis det ik var en label du skulle bruge ændre du det bare.
Jeg er ny inden for ASP.NET men kan det ikke gøres som jeg beskriver det?
Avatar billede repsak Nybegynder
11. november 2003 - 18:16 #30
kan ikke helt se hvad en label skal kunne?
Avatar billede punnishment Nybegynder
11. november 2003 - 18:44 #31
nej men så skifte label ud med Textbox, eller hvad det nu hedder.

Ville det ikke være muligt?

Altså lave en <asp:Textbox.... også skrive til den fra page_onload ?
Avatar billede repsak Nybegynder
12. november 2003 - 10:24 #32
Nopes, for problemet er at man ikke kan vide hvor mange poster som skal skrives. Hvis du f.eks. vidste at der var 7 (hverken flere eller færre) så kunne man godt, men hvor gøre det når .NET går arbejder for dig? :-)
Avatar billede burningice Nybegynder
13. november 2003 - 15:06 #33
for fanden.. skift

<td><%#Container.DataItem("fornavn")%></td>

ud med

<td><asp:TextBox id="txtFornavn" Text="'<%#Container.DataItem("fornavn")%>' runat="server" /></td>
Avatar billede repsak Nybegynder
13. november 2003 - 15:11 #34
så får du da en masse textboxe med samme id????
Avatar billede burningice Nybegynder
13. november 2003 - 15:21 #35
nope... det kan repeateren godt finde ud af at holde styr på :)
Avatar billede repsak Nybegynder
13. november 2003 - 16:32 #36
jeg vil stadig hævde at det er en uoptimal løsning... selvom at det ser ud til at spørger er gået kold :-)
Avatar billede burningice Nybegynder
13. november 2003 - 18:46 #37
repsak>> det kommer vel helt og aldeles an på hvad det er han vil... selv vil jeg da mene at et datagrid er noget overkill... især hvis man har mange felter, da det så ender med den er noget bred.
Avatar billede repsak Nybegynder
14. november 2003 - 09:48 #38
cyberfessor -> Jeg er ikke enig med dig... selvfølgelig kan den blive bred, men det er jo blot et spørgsmål og at designe sin side/program smart nok... Hvis der SKAL være mange oplysninger er det jo lige meget om han gør det på din eller min måde
Avatar billede yuksel Nybegynder
10. april 2005 - 23:15 #39
denne lukkes pga. manglende løsning og tid
Avatar billede yuksel Nybegynder
11. april 2005 - 10:25 #40
Spørgsmålet lukkes pga. tid & svar
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