Jag har en DataGrid där jag kan redigera nyheter. Då jag klickar på redigera länken visas två länkar i samma kolumn "ändra" och "ångra". Då jag klickar på ändra får jag textboxar på den raden, alla utom första. Problemet är att tex nyhetsinläggen kan ju bli ganska långa och det är ganska svårt att redigera text i en textbox eftersom att typ bara de 40 första tecknen visas. i .Net använder du textbox även för textarea. Däremot har textboxen en egenskap som heter Multiline och Columns som du kan använda för att göra denna större. Men asp.BoundColumn har inte attributet textmode. Det verkar vara default att en textbox med singleline ska visas? Om du använder VS.Net i designläge kan det vara så att du lagt textbox i fel template, jag har inte tillgång till miljön nu men det du ska visa ska väl ligga i ItemTemplate och det som ska visas när du ändrar i EditItemTemplate Här är min kod. Hur ska jag få en textarea där jag har denna kolumn i koden nedan? asp:BoundColumn HeaderText="Nyhet" DataField="nyhet" Du måste göra en template av kolumnen om du vill ha något annat än textbox i redigeringsläge. Följande borde väl funka för att visa texten i en label och sedan få en textbox i redigeringsläge.Textarea i DataGrid
Första kolumnen är en Template med en Label i, övriga är BoundColumn.
Hur kan jag få att vissa kolumner ska ha textboxar medans andra som nyhetsinlägget ska ha en textarea så att man får en bättre överblick?Sv: Textarea i DataGrid
Sv: Textarea i DataGrid
Om man gör asp:TemplateColumn på alla kolumner så kan man ju lägga in asp:TextBox med textmode=multiline, men då syns ju textboxarna direkt då man visar DataGriden. Jag vill att då man klickar på redigera länken så ska textboxarna visas.
Är det någon som har en lösning till min fundering?Sv: Textarea i DataGrid
Sv: Textarea i DataGrid
fil: nyheter.ascx
<code>
<asp:datagrid id="dgNyheter" OnDeleteCommand="tabort" OnCancelCommand="angra" OnUpdateCommand="uppdatera"
OnEditCommand="redigera" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateColumn HeaderText="Nyhetsnr">
<ItemTemplate>
<asp:Label id="id" runat="server" text='<%#Container.DataItem("id")%>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="Rubrik" DataField="rubrik"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Nyhet" DataField="nyhet"></asp:BoundColumn>
<asp:EditCommandColumn EditText="<img src=bilder/edit.gif border='0'>" CancelText="Avbryt" UpdateText="Uppdatera"
HeaderText="Redigera"></asp:EditCommandColumn>
<asp:ButtonColumn HeaderText="Ta bort" Text="<img src=bilder/trash.gif border='0'>" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp:datagrid>
</code>
Problemet med tex nyhetsinläggen är att de kan bli ganska långa och det är ganska svårt att redigera text i en textbox eftersom att typ bara de 40 första tecknen visas. Jag menar en nyhet kan ju ha allt från 1 - 400 tecken. Tänk dig då att man måste flytta markören framåt i textboxen tills man hitar ordet eller menningen man vill ändra på. Man får ju en väldigt dålig översikt med textbox. Det skulle ju lösas med en textarea där man får se mycket mer av nyheten. Sv: Textarea i DataGrid
<code>
<asp:TemplateColumn HeaderText="Rubrik">
<ItemTemplate>
<asp:Label id="ru" runat="server" text='<%#Container.DataItem("rubrik")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="test" runat="server" textmode="multiline"
text='<%#Container.DataItem("rubrik")%>'>
</EditItemTemplate>
</asp:TemplateColumn>
</code>
Jag har ingen möjlighet att testa koden men principen bör vara så