Avatar billede maxikoll Nybegynder
22. oktober 2002 - 15:35 Der er 4 kommentarer og
1 løsning

DataGrid og ItemDataBound

Hey, DataGrids er vildt smarte, men de ikke nemme at arbejde med hvis man ikke bare skal bruge noget der generes og det er det... Hvis man der hvor den vil lave et tekstfelt lave andre ting også? HTML kode fx.? Som den skriver ud når man trykker edit. Jeg har et ItemDataBound som giver textarea boksen et lidt anderledes udseende, som også er helt fint, men ville egentligt gerne have et link man kan trykke på nede under den. For at gøre det mere besværligt skal den også ligesom den giver textarea feltet et name, også smide det name/id i linket under. Alt dette ville have været lidt nemmere hvis bare det var alm. ASP, men nu generes det hele ud fra 1 ting :/

ItemDataBound:

    Sub MyDataGrid1_ItemDataBound(ByVal Sender As Object, ByVal E As DataGridItemEventArgs)
        If (E.Item.ItemType = ListItemType.EditItem) Then
            Dim i As Integer
            For i = 0 To E.Item.Controls.Count - 1
                Try
                    If (E.Item.Controls(i).Controls(0).GetType().ToString() = "System.Web.UI.WebControls.TextBox") Then
                        Dim tb As TextBox
                        tb = E.Item.Controls(i).Controls(0)
                        tb.Text = Server.HtmlDecode(tb.Text)
                        tb.CssClass = "inputmodul"
                        tb.TextMode = TextBoxMode.MultiLine
                        tb.Rows = 14
                    End If
                Catch

                End Try
            Next
        End If
    End Sub

Navnet på textarea bliver automatisk sat til fx. MyDataGrid1:_ctl2:_ctl2

Linket jeg gerne vil sætte ind under feltet skal så få samme value, fx.

<img src="inc/ikon.jpg" name="MyDataGrid1:_ctl2:_ctl2.value">

Er det umuligt?
Avatar billede -psycho- Nybegynder
22. oktober 2002 - 17:34 #1
Jeg er ikke helt sikker på hvad det er du vil..
Avatar billede odegaard Nybegynder
22. oktober 2002 - 22:30 #2
Har du kigget på asp:Repeater? Det er meget nemmere at bruge den til de mere specielle design.
Du binder dit data til repeater som med et datagrid. Istedet skriver du i design-delen (det skulle være indlysende hvordan du lavet det om som du lyster):

<asp:Repeater ID=repeatNews runat="server">
  <HeaderTemplate>
      <table>
  </HeaderTemplate>
  <ItemTemplate>
      <tr>
        <td><%# DataBinder.Eval(Container.DataItem, "Header") %></td>
        <td><%# DataBinder.Eval(Container.DataItem, "beskrivelse") %></td>
      </tr>
  </ItemTemplate>
  <FooterTemplate>
      </table>
  </FooterTemplate>
</asp:Repeater>
Avatar billede maxikoll Nybegynder
23. oktober 2002 - 14:38 #3
odegaard, mener jeg startede med Repeater men gik over til datagrid pga. dens mulighed for at lave en edit, cancel, update osv. som jeg skal bruge. Jeg havde ellers måske fundet en løsning, med at smide en attribute på... men virker ikke da .NET laver form navne med : i og det knækker javascript koden :(
Avatar billede odegaard Nybegynder
23. oktober 2002 - 16:52 #4
hmm... Det eneste tidspunkt jeg bruger datagrid, er også når jeg vil lave edit :-)
Du skal nok kigge lidt på Custem Templates til dit datagrid. Det er snart lang tid siden jeg rodede med det, siden jeg opdagede repeateren :-)
Avatar billede maxikoll Nybegynder
15. januar 2003 - 18:02 #5
Fandt en anden løsning :/
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