+ Rispondi al Thread
Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: Gestione dell aggiornamento e dell'eliminazione con controllo DetailsView

  1. #11
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...ehm...si...ma io chiedevo il markup cioè l'html del controllo dvsearchdata

  2. #12
    sanfra non è in linea Scolaretto
    Post
    373
    Si scusa, hai ragione ho sbagliato:
    codice HTML:
    <%@ Page Language="C#" MasterPageFile="~/Ugl.master" EnableViewState="true" AutoEventWireup="true" CodeFile="Ricerca.aspx.cs"
        Inherits="Ricercaperdata" Title="Untitled Page" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
        <br />
        <br />
        <asp:Label ID="lblmessaggio" runat="server" Text="Seleziona una data per fare una ricerca"></asp:Label>
        <br />
        <br />
        <asp:TextBox ID="txtprestazione" runat="server" Visible="false"></asp:TextBox><asp:Button
            ID="btnricercaprestazione" runat="server" Text="Ricerca" Visible="false" />
        <asp:TextBox ID="txtcognome" runat="server" Visible="false"></asp:TextBox><asp:Button
            ID="btnricercacognome" runat="server" Text="Ricerca" Visible="false" />
        <asp:Calendar ID="cl" runat="server" BackColor="White" Visible="false" BorderColor="#999999"
            CellPadding="4" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt"
            ForeColor="Black" Height="180px" Width="200px" OnSelectionChanged="cl_SelectionChanged">
            <SelectedDayStyle BackColor="#666666" Font-Bold="True" ForeColor="White" />
            <SelectorStyle BackColor="#CCCCCC" />
            <WeekendDayStyle BackColor="#FFFFCC" />
            <TodayDayStyle BackColor="#CCCCCC" ForeColor="Black" />
            <OtherMonthDayStyle ForeColor="#808080" />
            <NextPrevStyle VerticalAlign="Bottom" />
            <DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" />
            <TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" />
        </asp:Calendar>
        <br />
        <br />
        <asp:DetailsView ID="dvsearchdata" runat="server" Height="50px" Width="682px" CellPadding="3"
            DataKeyNames="idcliente" AllowPaging="True" HeaderText="Scheda Cliente" AutoGenerateRows="False"
            OnItemCommand="dvsearchdata_ItemCommand" BackColor="#DEBA84" BorderColor="#DEBA84"
            BorderStyle="None" BorderWidth="1px" CellSpacing="2">
            <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
            <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
            <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
            <EmptyDataTemplate>
                Non ci sono Cliente per questa data di ritiro
            </EmptyDataTemplate>
            <Fields>
                <asp:TemplateField>
                    <ItemTemplate>
                        <table cellpadding="2" cellspacing="2" width="100%">
                            <tr>
                                <td>
                                    IDCliente:
                                </td>
                                &nbsp;<td>
                                    <asp:Label ID="lblid" runat="server" Text='<%# Eval("idcliente") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Nome:
                                </td>
                                &nbsp<td>
                                    <asp:Label ID="lblnome" runat="server" Text='<%# Eval("nome") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Cognome:
                                </td>
                                &nbsp<td>
                                    <asp:Label ID="lblcognome" runat="server" Text='<%# Eval("cognome") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Indirizzo:
                                </td>
                                &nbsp<td>
                                    <asp:Label ID="lblindirizzo" runat="server" Text='<%# Eval("indirizzo") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Telefono:
                                </td>
                                <td>
                                    <asp:Label ID="lbltelefono" runat="server" Text='<%# Eval("telefono") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Email:
                                </td>
                                <td>
                                    <asp:Label ID="lblemail" runat="server" Text='<%# Eval("email") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Data Inserimento:
                                </td>
                                <td>
                                    <asp:Label ID="lbldataInserimento" runat="server" Text='<%# Eval("dataInserimento") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Data Ritiro:
                                </td>
                                <td>
                                    <asp:Label ID="lbldataritiro" runat="server" Text='<%# Eval("dataritiro") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Descrizione:
                                </td>
                                <td>
                                    <asp:Label ID="lbldescrizione" runat="server" Text='<%# Eval("descrizione") %>'></asp:Label>
                                </td>
                                <br />
                                <td>
                                    Evaso:
                                </td>
                                <td>
                                    <asp:Label ID="lblEvaso" runat="server" Text='<%# Eval("Evaso") %>'></asp:Label>
                                </td>
                                <br />
                                Lavorazione:<asp:Label ID="lblLavorazione" runat="server" Text='<%# Eval("Lavorazione") %>'></asp:Label>
                                <br />
                                Prestazione:<asp:Label ID="lblprestazione" runat="server" Text='<%# Eval("prestazione") %>'></asp:Label>
                                <br />
                                Modulo:<asp:Label ID="lblmodulo" runat="server" Text='<%# Eval("modulo") %>'></asp:Label>
                            </tr>
                        </table>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="txtidcliente" ReadOnly="true" runat="server" Text='<%# Eval("idcliente") %>'></asp:TextBox>
                        <asp:TextBox ID="txtnome" runat="server" Text='<%# Eval("nome") %>'></asp:TextBox>
                        <asp:TextBox ID="txtcognome" runat="server" Text='<%# Eval("cognome") %>'></asp:TextBox>
                        <asp:TextBox ID="txtindirizzo" runat="server" Text='<%# Eval("indirizzo") %>'></asp:TextBox>
                        <asp:TextBox ID="txttelefono" runat="server" Text='<%# Eval("telefono") %>'></asp:TextBox>
                        <asp:TextBox ID="txtemail" runat="server" Text='<%# Eval("email") %>'></asp:TextBox>
                        <asp:TextBox ID="txtdataInserimento" runat="server" Text='<%# Eval("dataInserimento") %>'></asp:TextBox>
                        <asp:TextBox ID="txtdataritiro" runat="server" Text='<%# Eval("dataritiro") %>'></asp:TextBox>
                        <asp:TextBox ID="txtdescrizione" runat="server" Text='<%# Eval("descrizione") %>'></asp:TextBox>
                        <asp:CheckBox ID="txtevaso" runat="server" Checked='<%# Eval("Evaso") %>' />
                        <asp:CheckBox ID="txtlavorazione" runat="server" Checked='<%# Eval("Lavorazione") %>' />
                        <asp:TextBox ID="txtprestazione" runat="server" Text='<%# Eval("prestazione") %>'></asp:TextBox>
                        <asp:TextBox ID="txtmodulo" runat="server" Text='<%# Eval("modulo") %>'></asp:TextBox>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ShowHeader="true">
                    <ItemTemplate>
                        <asp:LinkButton ID="lbEdit" runat="server" CommandName="editCliente" Text="Edit" />
                        <asp:LinkButton ID="lbUpdate" runat="server" CommandName="updateCliente" Text="Modifica"
                            Visible="false" />
                            <asp:LinkButton ID="lbannulla" runat="server" CommandName="annulla" Text="Annulla"
                            Visible="false" />
                        <asp:LinkButton ID="lbdelete" runat="server" CausesValidation="False" CommandName="Delete"
                            Text="Elimina" OnClientClick="javascript:return confirm('Cancellare il cliente?');" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Fields>
        </asp:DetailsView>
        <br />
        <br />
    </asp:Content>
    scusami....

  3. #13
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Bhè nel markup c'è un errore. Come ti dicevo nel mio primo post per il tasto delete (valore di default) devi cambiare il valore del property CommandName. Quindi al posto di "delete" puoi usare "deleteCliente", in parole povere ti devi comportare come hai già fatto per i tasti edit e update.
    Poi due piccole segnalazioni:
    i controlli txtEvaso e txtlavorazione essendo di tipo checkbox meglio dargli id più significativi: chkEvaso e chkLavorazione.
    Per quanto riguarda il codice lascio a te il compito di trovare le cose che non vanno .

  4. #14
    sanfra non è in linea Scolaretto
    Post
    373
    Non capisco il perchè quando clicco su Edit, mi dà Modifica e Annulla, ma il controllo DetailsView nonostante gli do il comando
    codice:
    dvsearchdata.ChangeMode(DetailsViewMode.Edit);
    non mi appaiono i TextBox per modificare.

    Inoltre se vado a cliccare "Annulla" con codice impostato così:

    codice:
    if (e.CommandName.ToLower() == "annulla")
            {
                LinkButton lbEdit = (LinkButton)dvsearchdata.FindControl("lbEdit");
                LinkButton lbUpdate = (LinkButton)dvsearchdata.FindControl("lbUpdate");
                LinkButton lbannulla = (LinkButton)dvsearchdata.FindControl("lbannulla");
                lbEdit.Visible = true;
                lbUpdate.Visible=!lbEdit.Visible;
                lbannulla.Visible = false;
                dvsearchdata.ChangeMode(DetailsViewMode.ReadOnly);
    
            }
    mi dice che il Viewstate non può essere gestito in questo modo.

  5. #15
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da sanfra Visualizza il messaggio
    non mi appaiono i TextBox per modificare.
    Se guardi attentamente il codice del mio esempio ho inserito un commento con scritto Bind. Cioè dopo aver impostato la modalità di edit devi rieseguire il bind (che non significa richiamare il metodo DataBind ) del controllo.
    Quote Originariamente inviato da sanfra Visualizza il messaggio
    mi dice che il Viewstate non può essere gestito in questo modo
    Sempre nel mio esempio l'impostazione di visiblità dei controlli (edit, update, ecc) è inserita nell'evento PreRender no nell'evento Command.

  6. #16
    sanfra non è in linea Scolaretto
    Post
    373
    Il fatto che io abbia cambiato posizione della visibilità del link edit e update era perchè quando parte la pagina in questione mi fa errore:
    protected void dvsearchdata_PreRender(object sender, EventArgs e)
    {
    LinkButton lbUpdate=(LinkButton)dvsearchdata.FindControl("lbU pdate");
    LinkButton lbEdit = (LinkButton)dvsearchdata.FindControl("lbEdit");

    if (dvsearchdata.CurrentMode == DetailsViewMode.Edit)
    {
    lbUpdate.Visible = true;
    lbEdit.Visible = !lbUpdate.Visible;
    }
    else if (dvsearchdata.CurrentMode == DetailsViewMode.ReadOnly)
    {
    lbUpdate.Visible = false;
    lbEdit.Visible = !lbUpdate.Visible;
    }


    sul else if e mi dice che "Riferimento a un oggetto non impostato su un'istanza di oggetto"

    Sul fatto del Bind ho fatto una c....

    mi complimento da solo!

  7. #17
    sanfra non è in linea Scolaretto
    Post
    373
    Volevo dirti che ho risolto il problema del Pre_Render che mi dava errore, in parole povere essendo che il controllo appare solo sul select della data del calendario ho fatto in modo che sull'else if gli ho impostato che la data non fosse vuota o nulla.


    Adesso sto cercando di capire il funzionamento del bind!

  8. #18
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Bhe su è semplice da risolvere. Non serve neanche fare debug in questo caso.
    Se il codice è inserito nell'evento Page_PreRender o nell'evento PreRender del controllo dvsearchdata allora devi verificare che la riga contenuta nel controllo sia diversa da EmptyDataRow (dato che usi questo tipo di riga quanto non ci sono dati da visualizzare):
    codice:
    if(dvsearchdata.Rows[0].RowType != DataControlRowType.EmptyDataRow)
    {
        //Ecc codice del mio post
    }

  9. #19
    sanfra non è in linea Scolaretto
    Post
    373
    Ma io intendevo il bind che va inserito quando il commandname è uguale ad edit e mi deve mostrare i textbox per poter modificare.

  10. #20
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Ovviamente io ho rispoto al post (mi sembra anche logico) in cui scrivevi:
    "Riferimento a un oggetto non impostato su un'istanza di oggetto"
    Neanche l'avevo visto il tuo post

    Per il Bind non ci sei ancora arrivato?...ma scusa avrai un metodo di popolamento del controllo, del tipo:
    codice:
    private void Bind()
    {
      //get dal db
      //setto il property DataSource del controllo con la DataTable, il DataSet ecc(quello che è)
      //richiamo sul controllo il metodo DataBind()
    }
    Ogni volta che esegui delle operazioni paginazione, ordinamento (lato server) ecc sai che devi ripopolare il controllo?
    Devi richiamarlo quando vai in modalità di edit.
    Comunque facevo prima a scriverti tutto il codice (manca poco a dir la verità). Non dovevi arrivarci da solo?

+ Rispondi al Thread
Pagina 2 di 2 primaprima 12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi