Avatar billede websam Nybegynder
22. august 2006 - 16:19 Der er 9 kommentarer og
1 løsning

Et par spørgsmål til detailsview ?

Hejsa,

Jeg har lavet et detailsview med en række label's og textbox'es og en enkelt button. Det jeg lige skal vide lidt om er hvordan jeg trækker data fra diverse textbox'es når jeg klikker på min button ?

Mit detailsview ser således ud i html :

<asp:DetailsView ID="EditView" 
                AutoGenerateRows="False"
                BorderStyle="None"
                BorderWidth="0px"
                cellpadding="2"
                Width="100%"
                runat="server">
    <Fields>
        <asp:TemplateField>
            <HeaderStyle HorizontalAlign="Left" VerticalAlign="Top" />
            <HeaderTemplate>
                <asp:Label ID="LabelRoleName"
                          runat="server"
                          EnableViewState="False"
                          Text="<%$ Resources:Roles, LabelRoleName %>">
                </asp:Label>
            </HeaderTemplate>
            <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
            <ItemTemplate>
                <asp:TextBox ID="txt_RoleName"
                            Text='<%# Bind("RoleName") %>'
                            runat="server"
                            EnableViewState="False"
                            CssClass="formfields">
                </asp:TextBox>
                <asp:RequiredFieldValidator ID="ValidRoleName" runat="server" ControlToValidate="txt_RoleName"
                                                    ErrorMessage="<%$ Resources:Roles, ErrorRolenameValid %>" ForeColor="#C80000">*</asp:RequiredFieldValidator>
            </ItemTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField>
            <HeaderStyle HorizontalAlign="Left" VerticalAlign="Top" />
            <HeaderTemplate>
                <asp:Label ID="LabelRoleDescription"
                          runat="server"
                          Text="<%$ Resources:Roles, LabelRoleDescription %>">
                </asp:Label>
            </HeaderTemplate>
            <ItemStyle HorizontalAlign="Left" VerticalAlign="Top" />
            <ItemTemplate>
                <asp:TextBox ID="txt_RoleDescription"
                            runat="server"
                            CssClass="formfields"
                            Height="75px"
                            MaxLength="500"
                            TextMode="MultiLine"
                            Width="250px"
                            EnableViewState="False"
                            Text='<%# Bind("Description") %>'>
                </asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField>
            <HeaderStyle HorizontalAlign="Left" />
            <HeaderTemplate>
                <asp:Label ID="LabelAddedOn"
                          Text='<%$ Resources:Default, LabelAddedOn %>'
                          runat="server">
                </asp:Label>
            </HeaderTemplate>
            <ItemStyle HorizontalAlign="Left" />
            <ItemTemplate>
                <asp:Label ID="LabelAddDate" Text='<%# Bind("AddDate") %>' runat="server"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
                   
        <asp:TemplateField>
            <HeaderStyle HorizontalAlign="Left" />
            <HeaderTemplate>
                <asp:Label ID="LabelAddedBy"
                          Text='<%$ Resources:Default, LabelAddedBy %>'
                          runat="server">
                </asp:Label>
            </HeaderTemplate>
            <ItemStyle HorizontalAlign="Left" />
            <ItemTemplate>
                <asp:Label ID="LabelAddBy" runat="server"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField>
            <HeaderStyle HorizontalAlign="Left" />
            <HeaderTemplate>
                <asp:Label ID="LabelEditedOn"
                          Text='<%$ Resources:Default, LabelEditedOn %>'
                          runat="server">
                </asp:Label>
            </HeaderTemplate>
            <ItemStyle HorizontalAlign="Left" />
            <ItemTemplate>
                <asp:Label ID="LabelEditDate" Text='<%# Bind("EditDate") %>' runat="server"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
                   
        <asp:TemplateField>
            <HeaderStyle HorizontalAlign="Left" />
                <HeaderTemplate>
                <asp:Label ID="LabelEditedBy"
                          Text='<%$ Resources:Default, LabelEditedBy %>'
                          runat="server">
                </asp:Label>
            </HeaderTemplate>
            <ItemStyle HorizontalAlign="Left" />
            <ItemTemplate>
                <asp:Label ID="LabelEditBy" runat="server"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
       
        <asp:TemplateField>
            <ItemStyle HorizontalAlign="Left" />
            <ItemTemplate>
                <asp:Button ID="ButtonEditRole"
                            CssClass="formbuttons"
                            Text="<%$ Resources:Roles, ButtonRoleEdit %>"
                            runat="server">
                </asp:Button>
            </ItemTemplate>
        </asp:TemplateField>
    </Fields>
</asp:DetailsView>
Avatar billede snepnet Nybegynder
22. august 2006 - 16:32 #1
F.eks.
TextControl tb = EditView.FindControl("txt_RoleDescription") as TextControl;
Men - det kræver jo så at kontrollen er i det mode hvor tekstboksen er tilstede.
Mvh
Avatar billede websam Nybegynder
22. august 2006 - 16:46 #2
Og det vil så bare sige at jeg skal ligge det i EditTemplate istedet for ItemTemplate ?

/Websam
Avatar billede snepnet Nybegynder
22. august 2006 - 17:14 #3
Det vil bare sige at kontrollen skal være til rådighed for at du kan finde den, så hvis du vil finde en kontrol i din edititemtemplate - skal den være i editmode.
Mvh
Avatar billede websam Nybegynder
22. august 2006 - 17:18 #4
Med min textbox flyttet til EditTemplate og med følgende kode virker det :

TextBox tb = (TextBox)EditView.FindControl("txt_RoleDescription");
Response.Write(tb.Text);

/Websam
Avatar billede websam Nybegynder
22. august 2006 - 17:19 #5
Jo men lige umiddelbart kan jeg ikke have den liggende i ItemTemplate og så lave det nummer, men ret mig endelig hvis jeg tager fejl ;o)

/Websam
Avatar billede snepnet Nybegynder
22. august 2006 - 17:35 #6
Den skal bare ligge i den template der bliver vist når du ønsker at få fat i den.
Mvh
Avatar billede websam Nybegynder
22. august 2006 - 17:41 #7
Det jeg vil frem til er at der ikke er noget der heder ItemView.FindControl("")

Men det andet virker fint ;o)

/Websam
Avatar billede snepnet Nybegynder
22. august 2006 - 17:46 #8
ItemView.FindControl(..) - det er der da heller ikke nogen her har snakket om :o)
Og det ville vel heller ikke gøre nogen forskel hvis der var... Der er vel ikke meget i dé i at hente en felt for at få en brugerindtastning, hvis feltet ikke har været vist :o)
Mvh
Avatar billede websam Nybegynder
22. august 2006 - 18:22 #9
Smid et svar, det spiller ;o)

/Websam
Avatar billede snepnet Nybegynder
22. august 2006 - 19:00 #10
Roger :o)
Mvh
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