Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


datagrid och textbox

Postades av 2008-01-22 15:53:25 - Jonas Nilsson, i forum c# (c-sharp), Tråden har 4 Kommentarer och lästs av 769 personer

Hej

Jag har en websida med massa olika fält bla datagrid där jag presenterar data från en DB. Om man väljer edit så vill jag att användaren skall kunna ändra innehållet. Dvs datagrid columnen behöver vara ett textfält som man kan ändra innehållet i.
Jag använder BoundColumn för att presentera data och bör väl använda templatecolumn för textboxen, men jag får inte till det.

Vid frågetecknen vet jag inte vad jag skall skriva.

<code>
BoundColumn LblCol = new BoundColumn();
LblCol.DataField = ("content");
LblCol.HeaderText = GridLabels[1];
LblCol.ItemStyle.Width = new Unit(GridColWidths[1]);
LblCol.ItemStyle.VerticalAlign = VerticalAlign.Top;


TemplateColumn MemoCol = new TemplateColumn();
MemoCol.ItemTemplate = ????????????????
MemoCol.HeaderText = GridLabels[1];
MemoCol.ItemStyle.Width = new Unit(GridColWidths[1]);
MemoCol.ItemStyle.VerticalAlign = VerticalAlign.Top;

if (Editing)
{
DG_Units.Columns.add(MemoCol);
}
else
{
DG_Units.Columns.Add(LblCol);
}

DG_Units.DataBind();
</code>

Någon med tips? Tacksam för all hjälp.


Svara

Sv: datagrid och textbox

Postades av 2008-01-23 12:55:19 - Chris Klug

Gör det inte från kod. Det är mycket lättare att göra den delen i markup. Då kan du skapa en templatecolumn tag och inne i den bara skapa visningen... Typ:

      <asp:DataGrid runat=server ID="DG_Units">
            <Columns>
                <asp:BoundColumn DataField="Content"></asp:BoundColumn>
                <asp:TemplateColumn>
                    <EditItemTemplate>
                        <asp:TextBox runat=server ID="tb" Text='<%# Eval(Container.DataItem,"Content") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Literal runat=server ID"lit" Text='<%# Eval(Container.DataItem,"Content") %>'></asp:Literal>
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
        </asp:DataGrid>

Kanske inte helt perfekt kod, men du förstår nog principen...
Sen är det bara i codebehind att databinda och bestämma om den ska vara i EditMode eller inte
<code>
DG_Units.EditItemIndex = 0;
DG_Units.DataBind();
</code>
Denna lösning ger iofs bara edit till en rad i taget... Alternativet är att bara ha en ItemTemplate och sedan i ItemDataBound eventet visa eller dölja texbox respektive literal. Hänger du med? Typ:

      <asp:DataGrid runat=server ID="DG_Units"OnItemDataBound="DG_Units_ItemDataBound"></>
            <Columns>
                <asp:TemplateColumn>
                    <ItemTemplate>
                        <asp:TextBox runat=server ID="tb" Text='<%# Eval(Container.DataItem,"Content") %>'></asp:TextBox>
                        <asp:Literal runat=server ID"lit" Text='<%# Eval(Container.DataItem,"Content") %>'></asp:Literal>
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
        </asp:DataGrid>


och codebehind
<code>
protected void DG_Units_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.FindControl("tb").Visible = Edit;
e.Item.FindControl("lit").Visible = !Edit;
}
}
</code>
Går säkert att göra snyggare, men det bör fungera...


Svara

Sv: datagrid och textbox

Postades av 2008-01-23 13:21:38 - Chris Klug

Alternativt kan du skapa en ny klass som implementerar ITemplate. Dvs i princip en klass som implementerar InstantiateIn i vilken den skapa sitt kontent och lägger till det i kontrollen som skickas in i metoden... Men då har du låst upp layouten i kode, vilket inte är speciellt bra om man vill ändra i framtiden. Min tidigare post är nog lämpligare....


Svara

Sv:datagrid och textbox

Postades av 2008-01-25 10:34:48 - Jonas Nilsson

Nu börjar jag fatta. En sak som jag dock inte förstår är hur det skall se ut i codebehind.

Skall jag anropa den funktionen som du skrivit, och hur skall det anropet se ut?

Hur skall argumenten se ut som jag skickar in i funktionen?
<code>
DG_Units_ItemDataBound(?????);
</code>


Svara

Sv: datagrid och textbox

Postades av 2008-02-08 13:39:41 - Jonas Nilsson

jag får det inte att fungera.

Jag kan ta bort det som du givit som exempel i codebehind utan att det gör någon skillnad. Enda gången ha nvisar textbox är om man inte fyller datagriden med info i kolumnerna mhja boundcolumn. Vad missar jag ?

Mycket tacksam för hjälp.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 710
27 958
271 751
754
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies