Reusing same DetailsView for both Inserting and Editing

Discussion in 'ASP .Net' started by David Ching, Aug 29, 2007.

  1. David Ching

    David Ching Guest

    Newbie question here. I have a GridView where I show all the records in my
    table. I have Edit links in each row to edit that row, and also a button to
    Insert a new record. In both cases, I'd like to popup a <div> containing a
    DetailsView to specify the record data. The <div> is popped up when the
    Insert button is clicked as per this JavaScript:
    <button
    onclick="document.getElementById('divAdd').style.display='block';return
    false;">

    or when an Edit link is clicked:

    protected void grdMaster_RowCreated(object sender, GridViewRowEventArgs
    e)
    {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
    LinkButton lnkEdit = (LinkButton)e.Row.Cells[0].Controls[0];
    lnkEdit.Attributes["onclick"] =
    "document.getElementById('divAdd').style.display='block';return false;";
    }
    }




    The <div> is :

    <div id="divAdd" class="popupWindow">
    <h3>Add Project</h3>
    <asp:DetailsView
    id="frmAdd"
    DataSourceId="srcProjects"
    DefaultMode="Edit"
    AutoGenerateEditButton="True"
    Runat="server" AutoGenerateRows="False" DataKeyNames="ProjectId">
    <Fields>
    <asp:boundfield DataField="ProjectName" HeaderText="Project Name"/>

    <asp:TemplateField HeaderText="Client Name">
    <ItemTemplate>
    <asp:DropDownList ID="DropDownList1"
    DataSourceID="srcClients"
    DataTextField="ClientName"
    DataValueField="ClientId"
    SelectedValue='<%# Bind("ClientId")%>'
    Runat="server"/>
    </ItemTemplate>
    </asp:TemplateField>

    <asp:boundfield DataField="ProjectPONumber" HeaderText="PO Number"/>
    </Fields>
    </asp:DetailsView>
    </div>


    I have verified that this <div> works for the Edit case! It also works for
    the Insert case, if I change these two lines:

    DefaultMode="Edit"
    AutoGenerateEditButton="True"
    to:
    DefaultMode="Insert"
    AutoGenerateInsertButton="True"

    But how can I set these programatically depending on whether an Edit link is
    clicked, or the Insert button is clicked? All the examples I've seen have 2
    <div>, one for the Edit, and another one for the Insert. But this seems
    wasteful and error-prone because only the above 2 lines are different. Is
    there any way to use just one <div> for both Edit and Insert?

    Thanks a bunch,
    David
    David Ching, Aug 29, 2007
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. tom c
    Replies:
    0
    Views:
    444
    tom c
    Sep 19, 2006
  2. STom

    Reusing a user control within the same application

    STom, Aug 17, 2003, in forum: ASP .Net Building Controls
    Replies:
    0
    Views:
    109
  3. STom

    Reusing a user control within the same application

    STom, Aug 17, 2003, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    90
  4. David Ching

    Reusing same DetailsView for both Inserting and Editing

    David Ching, Aug 30, 2007, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    159
    David Ching
    Aug 30, 2007
  5. daniel rich
    Replies:
    5
    Views:
    297
    daniel rich
    Nov 14, 2012
Loading...

Share This Page