Forms Data Controls :: FormView ItemUpdating / Custom Update For A Form View?
May 20, 2010
I need to do a custom update for a form view (I think/know), as some of the parameters that are required for updating values should not be updated by the users, such as userid of the person performing the action which is passed back to the database for auditing purposes.
Additionally, there are some fields, such as LastUpdatedBy, LastUpdatedDate that need to be seen, but not edited. The stored procedure on the backend takes care of this, and these are not parameters for the Update method. The FormView by default is trying to pass all these values back to the database.
Lasty, the select query of the object datasource is a stored procedure that performs several joins based on PF/FK relationships to bring back more meaningful information than just a FK, so some columns are just the joined value, and can not be updated directly. Again, formview is trying to pass these parameters
So given that, I have defined the following even handler for a simple form view:
(not sure if this is the way to proceed given the above, but...)
protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
ProjectDetailsDataSource.UpdateParameters.Clear();
ProjectDetailsDataSource.UpdateParameters.Add("projectID", ((Guid)e.Keys["ProjectID"]).ToString());
ProjectDetailsDataSource.UpdateParameters.Add("projectName", (string)e.NewValues["ProjectName"]);
ProjectDetailsDataSource.UpdateParameters.Add("description", (string)e.NewValues["Description"]);
ProjectDetailsDataSource.UpdateParameters.Add("projectTypeID", "1");
ProjectDetailsDataSource.UpdateParameters.Add("statusID", "1");
ProjectDetailsDataSource.UpdateParameters.Add("productID", null);
ProjectDetailsDataSource.UpdateParameters.Add("isComplete", ((bool)e.NewValues["IsComplete"]).ToString());
ProjectDetailsDataSource.UpdateParameters.Add("isActive", ((bool)e.NewValues["IsActive"]).ToString());
ProjectDetailsDataSource.UpdateParameters.Add("userid", Membership.GetUser().ProviderUserKey.ToString());
ProjectDetailsDataSource.Update();
FormView1.ChangeMode(FormViewMode.ReadOnly);
e.Cancel = true;
}
My questions are as follows:
1) Is this the right approach?
2) Is so, when I cancel the edit (because I did the update myself), and change mode, the FormView returns to read only mode as inteneded (good so far). However, when I hit F5 (refresh), the ItemUpdating method is called again, and updates the database.
View 4 Replies
Similar Messages:
Aug 19, 2010
How to use RadioButton in FormView in EditTemplate to get information on the field, for example:
in the template:
<Asp: FormView ID = "FormView1" runat = "server" DataSourceID = "SqlDataSource1"
Width = "907px" onitemupdating = "FormView1_ItemUpdating" DefaultMode = "Edit">
<EditItemTemplate>
<table cellpadding="4" cellspacing="4" border="0" style="width:100%;margin-top:20px">
<tr>
<td> <strong> Type Person: </ strong> </ td>
<td>
<Asp: RadioButton ID = "CHR_TIPOPESSOAFISISCARadioButton" Text = "F" runat = "server" Checked ='<%# Convert.ToBoolean (Eval ("CHR_TIPOPESSOA"). ToString (). Trim (). Equals ("F")
"true": "false")%> 'GroupName = "RadioButtonTipoPessoa" />
<Asp: RadioButton ID = "CHR_TIPOPESSOAJURIDICARadioButton" Text = "J" runat = "server" Checked ='<%# Convert.ToBoolean (Eval ("CHR_TIPOPESSOA"). ToString (). Trim (). Equals (J)
? "true": "false")%> 'GroupName = "RadioButtonTipoPessoa" />
</ Td>
</ Tr>
</ Table>
<Asp: LinkButton ID = "UpdateButton" runat = "server" CausesValidation = "True"
CommandName = "Update" Text = "Update" />
</ EditItemTemplate
View 2 Replies
Sep 26, 2010
So, to sum is up, I have a FormView:
[Code]....
And the relevant code:
[Code]....
What does work: I do see the right info if the formview is shown but when I click on the Update button it just doesnt fire the corresponding itemupdating event.
Can someone see what is wrong or missing?
What do I want to archieve: Just update the subscription's credits and its type: Upgrade, Prolong.
-edit-
New finding: I added 'onitemcommand="fvSubscriptionEdit_ItemCommand"' to the formview and a corresponding event method with a simple code that throw a exception(just testing) but it doesnt enter the method but does whine when the method is missing. So why does it whine if the method is not there but doesnt enter the method if it does exist? I presume that this is the same problem.
View 16 Replies
Apr 3, 2010
I have the follow form view:
<asp:FormView
DefaultMode="Edit"
ID="FormView1"
runat="server"
onitemupdating="FormView1_ItemUpdating">
<EditItemTemplate>
<asp:TextBox
ID="txtPrimerNombreNatural"
runat="server"
SkinID="texto"
MaxLength="30"
Text='<%#Bind("PrimerNombre") %>'></asp:TextBox>
<asp:TextBox
ID="txtSegundoNombreNatural"
runat="server"
SkinID="texto"
MaxLength="30"
Text='<%#Bind("SegundoNombre") %>'></asp:TextBox>
</EditItemTemplate>
</asp:FormView>
<asp:Button
ID="Actualizar"
runat="server"
Text="Button"
CommandName="Update"
/>
This formview is bound in this way:
protected void Page_Load(object sender,
EventArgs e)
{
Persona _persona =
new
Persona();
_persona.ObternerPersonaByUserIdApp(1);
List<SILPA.AccesoDatos.Generico.PersonaIdentity> persona =
new
List<SILPA.AccesoDatos.Generico.PersonaIdentity>();
persona.Add(_persona.Identity);
FormView1.DataSource = persona;
FormView1.DataBind();
}
When the page is shown, the textbox are filled correctly, this textbox are filled with the "primernombre" and "segundonombre" properties from the persona class. After this, If I change the textbox, and after click the update button, I need to update the persona class with the changes from the textboxes, then I call a ActualizarPersona method for updating the database. How can I do for update the persona class when I change the textboxes and click the update button? I try this method protected void FormView1_ItemUpdating(object sender, FormViewUpdateEventArgs
e)
{
}
View 1 Replies
Aug 4, 2010
I am using a from view for data entry. I need to verify that a check box is true or false after editing a record.
I have been accessing label text using the following|
CType(FormView1.FindControl("RespDeptLabel"), Label).Text
How can I access the state of a checkbox in the form view to determine if it is true or false
View 4 Replies
Apr 12, 2010
I have a typical gridview/formview master control setup. When I try to update or insert I don't get any errors but it also doesn't work. When I try to insert data all I get are null values and when I update, none of the values are updated. The formview looks like its working, but just doesn't. The primary key is an identity and it auto-increments by one.
[Code]....
View 3 Replies
Nov 15, 2010
Have a Formview set up to edit a single record in an SQL table. It displays the record fine, but when you click the "update" link it just appears to do a postback and nothing else.After the postback you're looking at the original record without any of the changes you just tried to make.I went to my Dataset TableAdapter and checked the UDATE query there..it works fine, I was able to change a record.My ObjectDataSource is correctly configured to use the UDATE query--I triple checked all that.
[Code]....
View 2 Replies
Jan 2, 2010
I use ObjectDataSource and DetailsView for Updating records . my Bll input parameter method is an Object instead of regular parameter . So i though i could make my own ObjectParameter in ItemUpdating event of DetailsView and i need some modifiation on the data that user input on boudfield in detailsView . I don't know how to access BoundFiled data from ItemUpdating Method of DetailsView.
View 1 Replies
Aug 17, 2010
I would like to set the one template for edit/insert and view in my custom FormView control . But i got these odd exception Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.Table'.
public class CustomFormView : FormView
{
[PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(FormView), BindingDirection.TwoWay)]
public IBindableTemplate FormTemplate { get; set; }
protected override void OnInit(EventArgs e)
{
ChangeMode(FormViewMode.Edit);
if (FormTemplate != null)
{
if (CurrentMode == FormViewMode.Edit)
{
FormTemplate.InstantiateIn(this);
}
}
base.OnInit(e);
}
}
edited :
in the first step , I created the new user control and added a formview ("FV")
public partial class Form : UserControl
{
private IBindableTemplate _template = null;
[PersistenceMode(PersistenceMode.InnerProperty),
TemplateContainer(typeof(FormView), System.ComponentModel.BindingDirection.TwoWay)]
public IBindableTemplate FormTemplate { set;get }
protected void Page_Init()
{
if (FormTemplate != null)
{
FV.InsertItemTemplate = FV.EditItemTemplate = FormTemplate;
if (!IsPostBack) FormTemplate.InstantiateIn(FV);
}
}
}
Now , I want to convert this user control to web control.
View 1 Replies
Feb 16, 2010
Trying to update a .NET .20 datagridview in the following scenario. A page contains a formview. The formview contains a datagridview and some other fields not in the grid. The formview has its own ObjectDataSource and the datagridview has a separate ObjectDataSource. Each ObjectDataSource has an OnUpdating event. Clicking a Save button triggers the formview update event and the "non-grid" ObjectDataSource updates without a problem. In that same event, I also want to update the grid's ObjectDataSource. Because it's a grid, this OnUpdating event has to loop through each row, get the data for that row and set the UpdateParameter values. A foreach loop can get the values, but how do I trigger the update before looping to the next row?
Should I try calling a different kind of event for the DataGridView's ObjectDataSource? Or is there a way to get all the grid's new data at once as a dataset or datatable and do one bulk update? The datagridview does not have row-level edit/update buttons. It is meant to be an all-or-nothing kind of update.
View 2 Replies
Jul 29, 2010
I have a FormView that that implements all templates (Insert / Edit / Item). When a user updates the form and the operation completes successfully, I want the form to be closed.
I understand that the default behaviour of the FormView is that it returns to ReadOnly mode. I also understand that I can change the default mode so the view will not be ReadOnly, but Insert or Edit. However, I want a much simpler thing - just close the view alltogether (as if it was unbounded).
I tried to change the Visible attribute of the form to False (=Not Visible) at the OnItemUpdated event, but that created consequences errors (something about viewState.... don't want to go there...)
View 1 Replies
Apr 10, 2010
am working with form view for the first time.My issue here is i have an insert item template and edititem template where i have dropdownlist to insert and edit data in to databasemy code below
<asp:FormView ID="fv_ChildPhysicalActivites" runat="server"
DataSourceID="ods_ChildPhysicalActivite"
onitemcommand="fv_ChildPhysicalActivites_ItemCommand"
[code]....
View 5 Replies
Feb 17, 2010
I'm having a problem with a formview i've created. The formview itself uses a costum template to perform updates to the database. Its a form to edit Car details. One of the details is the brand. I use a dropdownlist control to let them select the name of a brand thats in our database, this passes an ID to BLL's update so the car gets updated with a brandID. My update query works perfectly when i try it directly on the database, however, when i use the formview it updates everything except the brand.
When I debug and watch the NewValues object he passes, it does contain the new value for the brandID.
btw, brand is 'merk' in dutch, so brandID is called 'MerkID', and the brandname is called 'Naam'
PL:
[Code]....
BLL:
[Code]....
[Code]....
Update query used in DAL(-->VoertuigAlgemeenTableAdapter.UpdateVoertuigAlgemeen)
[Code]....
View 2 Replies
May 19, 2010
I have a data bound control (using <%# Bind %>). I am trying to change the value of it before it gets udpated.
I use:
[Code]....
But the value is not changed to 1.
Also, e.Keys, OldValues and NewValues are all empty for whatever reason.
View 3 Replies
Jan 20, 2010
Being A C++ programmer this is fairly new to me - I am working on a formview and have been facing a problem- The issue is simple - I want to display a success page after I insert a row successfully and a custom error page if the insertion fails (due to datatype or format mismatch with table in database).
To achieve this I am doing as follows -
1. Defining a custom error page in ASP.NET configuration tool (webconfig)
>> This page never works if I enter an incorrect format in formview. It would rather display the ugly page with Server Error information (for example) -
The string was not recognized as a valid DateTime. There is a unknown word starting at index 0.
question - Why my default page is not getting displayed? Is it because I am testing from same development machine or is it because the error page doesnt work for "Server Error" pages?
2. In the "iteminserted" event I am redirecting it to Response.Redirect("~/newitemconfirm.aspx")
>> If I do this, irrespective of whether the row insertion was successful or not, this confirmation page always gets displayed! I want it to be displayed only on successful insertion.
View 2 Replies
Sep 7, 2010
FormView custom data binding problem
View 7 Replies
Jan 19, 2010
I have method that I call which needs to find all the panels in the page but it fails. I have another method that was created by the VS has the traditional paraeters such the object sender, EventArgs e that the similar code works fine but the (simplyfied) code below. It is clear to me that these parameters contain information that makes one method work while the other not, but I don't know why.
The code breaks on the last line of code: _pnlAssetInfo = (Panel.....
[Code]....
View 3 Replies
Jul 22, 2010
I have a formview and data source that opens in the edit template and allows the user to update a few free form text fields. I also have some drop down boxes that allow a DOB to be built and populate another text box. All of this was working fine yesterday, and today somehow I hosed it and can not find the cause. I have rebuilt this page three times to get it working again, but I can't figure out what I am doing wrong to break it.
[Code]....
Here is the DataSource....
[Code]....
View 4 Replies
Jul 5, 2010
I have a FormView with default mode set to "Edit". When I click the Update after making changes the form reopens in the Insert mode.
<asp:FormView
ID="FormView2"
runat="server"
CellPadding="4"
DataKeyNames="ID"
DataSourceID="SqlDataSource3"
DefaultMode="Edit"
EnableModelValidation="True"
Font-Names="Calibri"
Font-Size="9pt"
ForeColor="#FFFFFF"
Height="600px"
Width="1000px"
onitemupdated="FormView2_ItemUpdated"> What am I doing wrong
View 1 Replies
Apr 4, 2010
I have a gridview linked to a formview both in an update panel, my triggers are GridView SelectedIndex, and FormView ItemDeleted, ItemUpdated, ItemInserted, and ModeChanged;however, when I insert, or delete in the Formview the Gridview does not update, even though the update panel shows the progress update, and now shows the new record. How do I get the Gridview to update when the panel is updated?
[Code]....
View 5 Replies
May 17, 2010
In FormView EditTemplate I am trying to update record. All records are perfectly updating except one i.e. want to put CurrentDateTime (17/05/2010 10:23:00 AM). Secondly the updated Current DateTime should display in the DateTime Textbox("ClrDateTimeTextBox") in formview.
The code which I used is :
[Code]....
But I am getting following runtime error in above highlighted code:
Arithmetic overflow error converting expression to data type datetime.
View 25 Replies
Feb 28, 2011
Is it possible to update and edit a record in Formview at the same time. Currently, the formview's default mode is set to Insert where users can add a new record to an SQL database, however, when that record is added I need that information to update another table all on one click. Is this possible with a stored procedure or a button that allows both?
View 4 Replies
Jan 18, 2011
I have a formview tied to a gridview. The formview shows the data for the row selected in the gridview. The formview is invisible by default , default mode is readonly and becomes visible only on Selecting a row in the gridview. I make it visible in the SelectedIndexchanged event of the gridview. There are Insert and update buttons present outside the formview which perform the insert and update using code-behind. The code is below.
AFter an insert or update, the formview makes invisible again. I want to show the formview with the newly inserted or updated row in Read-only mode. How do I do this?
protected
void gvEvent_SelectedIndexChanged(object
sender, EventArgs
e)
{
if (gvEvent.SelectedIndex
[Code]....
View 7 Replies
Dec 6, 2010
I have Gridview that opens in the Edit Template with UPDATE and CANCEL links at the bottom, so the users can modify records.
When the user clicks UPDATE there is no indication that the DB was updated. I don't want to redirect the user.
What is the easiest way to provide a confirmation that the DB was updated?
View 14 Replies
Feb 15, 2010
Im having a problem with a datetime conversion using a formview with a nested wizard. The senario is I the user can add to the database allowing for null datetime values. The code below work fine on an insert query, but when the formview is in update mode the conversion fails.
[Code]....
View 2 Replies