Solved

How to call DetailsView's New explicitly??

Posted on 2008-10-07
2
361 Views
Last Modified: 2012-05-05
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
Comment
Question by:dkim18
  • 2
2 Comments
 
LVL 16

Expert Comment

by:GreymanMSC
ID: 22675381
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
 
LVL 16

Accepted Solution

by:
GreymanMSC earned 500 total points
ID: 22675423
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

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question