Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 388
  • Last Modified:

How to call DetailsView's New explicitly??

Hi,

DetailsView has these edit,delete,new builtin function.
How can I call this new detailsview explicityly??
As you know detailsview let you handle update, delete and insert.
I want to use that same detailsview to handle edit and insert a new record.
How can I call this new detailsview??
Thanks.
0
dkim18
Asked:
dkim18
  • 2
1 Solution
 
GreymanMSCCommented:
If the command buttons are placed inside a Template Field, you can change the DetailsView's mode according to their CommandName.  Set the attribute to Edit, or New as appropriate in the ItemTemplate.  The commands to save the record are Update and Insert, or Cancel to ... not save, obviously.  

This is the usual method.


<asp:TemplateField>
    <EditItemTemplate>
        <asp:Button ID="cmdUpdate" runat="server" CommandName="Update" Text="Save" />
        <asp:Button ID="cmdCancel" runat="server" CommandName="Cancel" Text="Undo" />
    </EditItemTemplate>
    <InsertItemTemplate>
        <asp:Button ID="cmdInsert" runat="server" CommandName="Insert" Text="Save" />
        <asp:Button ID="cmdCancel" runat="server" CommandName="Cancel" Text="Undo" />
    </InsertItemTemplate>
    <ItemTemplate>
        <asp:Button ID="cmdEdit" runat="server" CommandName="Edit" Text="Edit" />
        <asp:Button ID="cmdNew" runat="server" CommandName="New" Text="Add New" />
    </ItemTemplate>
</asp:TemplateField>

Open in new window

0
 
GreymanMSCCommented:
However, if the command button is located outside the DetailsView, then you need to use server side code in the buttons' OnClick event.  The code can call the ChangeMode method to switch from ReadOnly to Edit or Insert, or back to cancel.  To save the record use the UpdateItem or InsertItem methods, as appropriate
    Protected Sub cmdEdit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEdit.Click
        Me.dvItems.ChangeMode(DetailsViewMode.Edit)
        Me.cmdEdit.Visible = False
        Me.cmdNew.Visible = False
        Me.cmdSave.Visible = True
        Me.cmdCancel.Visible = True
    End Sub
 
    Protected Sub cmdNew_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdNew.Click
        Me.dvItems.ChangeMode(DetailsViewMode.Insert)
        Me.cmdEdit.Visible = False
        Me.cmdNew.Visible = False
        Me.cmdSave.Visible = True
        Me.cmdCancel.Visible = True
    End Sub
 
    Protected Sub cmdCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdCancel.Click
        Me.dvItems.ChangeMode(DetailsViewMode.ReadOnly)
        Me.cmdEdit.Visible = True
        Me.cmdNew.Visible = True
        Me.cmdSave.Visible = False
        Me.cmdCancel.Visible = False
    End Sub
 
    Protected Sub cmdSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSave.Click
        Select Case Me.dvItems.CurrentMode 
            Case DetailsViewMode.Edit
                Me.dvItems.UpdateItem(True)
                If Me.Page.IsValid Then
                    Me.dvItems.ChangeMode(DetailsViewMode.ReadOnly)
                End If
            Case DetailsViewMode.Insert
                Me.dvItems.InsertItem(True)
                If Me.Page.IsValid Then
                    Me.dvItems.ChangeMode(DetailsViewMode.ReadOnly)
                End If
        End Select 
    End Sub

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now