MVC :: Edit Action Not Updating?
May 21, 2010I have an edit action that is not updating. The code is below. When i debug the code , i see my udated field but it doesnt seem to get saved into the database.
[Code]....
I have an edit action that is not updating. The code is below. When i debug the code , i see my udated field but it doesnt seem to get saved into the database.
[Code]....
Consider the following scenario.You have a Edit action (GET and POST) for an entity that multiple pages link into (GET EDIT). What is the best way of getting back to the page that linked to the edit action? Adding a returnTo url in the query?
Example, from MyCart/3 we have a edit product link
/Product/Edit/5?returnTo=MyCart/3 (but url encoded)
And from Producer/45 we have this link
/Product/Edit/5?returnTo=Producer/45
Is there a better way to do this?
I'm a newbie into MVC and I am like only on chapter 7 in ASP.NET MVC Unleashed so be easy with m
[Code]....
how do I tell Create Button to send to an Action named Create and to Edit to an Action named Edit on the same form?I guess it is possible on ASP.NET MVC if it is possible on ASP.NET Webforms
I am rather new to ASP.NET MVC and am trying to develop good practices and have studied a few tutorials and videos. There seems to be some differences in how people define the signature of a typical edit action method - sometimes the id (primary key) is listed and sometimes not. It seems like letting the framework do the model binding is a GOOD THING, so I will probably have the model (or view model) as a parameter:
ActionResult Edit(int id,
CompanyViewModel company);
ActionResult Edit(CompanyViewModel company);
But, should the id be a parameter too? I assume it is common-place to have the id in a hidden form field as well so the id (primary key) is then already bound in the model (or view model) - if so, what is the id parameter good for? Or should it be the other way around - keep the id parameter and do not bother using a hidden field for it? What are the pros and cons and what is the best practice?
Having alot of startup issues with MVC - I really like the idea behind it all, and the way it works, but still lacking some essential skills, WebForms is much more natural to me. Just to simplify my problem.
I have a "Blog" page with "Posts" which needs a "Comments" systems. In my blog view "/Post/Details/{id}" I'm showing all data for the "Post" model. So at the bottom I need to loop and display all comments, this is fine:
[Code]....
Now I want a form/input where you can submit a new comment. This is the problem, how do I implement that, tried everything! How do I catch that form submit in Details action in my PostController?
Is it possible to edit the content of a view from a action filter.
What I am working on is a Resourcemanager that I can use to manage
my style sheets, js and other resources. I want to be able to put
lines in the the view any where like Html.ResourceManager.AddScriptFile("MyScript")
or Html.ResourceManager.AddCSSFile("MyCSS")
and at the end of the view call Html.Render(); this would then place the content of my resources at this point. My problem is that I want to put the CSS stuff at the top of the view, but them problem is that it is renderend at the end of the view, so I tought that I could use a ActionFilter to move it to the top of the view.
1) What would be the best way to do this task ?
2) Is there any resources that describe the way that the MVC framework works in more detail ?
I have a dictionary in my user's view model used to store user's roles:
[Code]....
In my edit view:
[Code]....
the code above generates:
[Code]....
It seems that when I edited the checkboxes' value and post to server, the UserEditViewModel.Roles is empty.
I have two tables - one called Contract, one called Sow. Contract has a foreign key that points to SOW. What I'd like to do is to be able to edit the Contract details and provide a drop down list of different SOW records to choose from. The current code:
In my Contract Controller:
public ActionResult Edit(int id)
{
Contract contract = contractRepository.GetContract(id); [code]...
The list populates with values, but when I change them and update, the foreign key does not change.
I have a GridView with EDIT, DELETE AND SELECT options.Now I want to include AJAX code so that on pressing DELETE or EDIT it gives me a pop-up box, confirming my action.
View 8 RepliesI'm trying to build something like the MVC music store for learning purposes,
creating and deleting entries works great, but updating does not work -
for some reasoen after clicking the update button, i go back to the index page but no changes are saved.
I'v put a break point right before the SaveChanges(), i see that the form colection shows the new data, but it's not geting into the db?
I am using a gridview to display data and want to implement Edit, Update and Cancel in the GridView. Edit and Cancel are working fine but on update the Gridview isn't exiting out of the edit mode. I am using the gridview inside an UpdatePanel.
[Code]....
I have a detailsview control linked to a SQL DB. I have created a template field with various controls within. When I click on edit and change the values and press update. The detailsview control changes back to read only and displays the original values. I have attached the code for the control and datasource below.
[Code]....
SQL DATA Source
[Code]....
where I have gone wrong? changing from VS2003 DataGrid to VS2010 GridView; still on SQL Server 2000 so the wizards for autogenerating the code are not compatible.
Delete works, RowUpdating does not. I get an ArgumentOutOfRangeException on "rowToUpdate("QuoteDQty")
= Me.dgQuoteList.Rows(e.NewValues.Item(1).ToString)"
Private
Sub dgQuoteList_RowUpdating(ByVal sender
As Object,
ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs)
Handles dgQuoteList.RowUpdating
[code]...
I am using the following code to update the data in my datagrid.
But when I click update the value is updated in the database but it still shows old value in datagrid.
If I refresh the page after that then datagrid shows the updated value.
Code On Update Command:
protected void MySQLDataGrid2_UpdateCommand(object source, DataGridCommandEventArgs e)
{
string newData;
TextBox aTextBox;
aTextBox = (TextBox)(e.Item.Cells[0].Controls[0]);
newData = aTextBox.Text;
decimal comm = Convert.ToDecimal(newData);
string UpdateHiveCommission = "Update tbl_HiveCommission set Commission = '" + Convert.ToDecimal(newData) + "'";
MySqlConnection objMyCon3 = new MySqlConnection(strProvider);
objMyCon3.Open();
MySqlCommand cmd3 = new MySqlCommand(UpdateHiveCommission, objMyCon3);
cmd3.ExecuteNonQuery();
objMyCon3.Close();
MySQLDataGrid2.EditItemIndex = -1;
MySQLDataGrid2.DataBind();
}
Is there a way to update a value in a gridview, by pressing a button that shows within the cell? For example, i have a really simple gridview showing supply levels, I havr the following SQL table:
ID = Int
PartNumber = varchar
Quantity = Int
I would like to be able to press a "Plus" or "Minus" button on the gridview next to the Quantity (in stock) value which updates the database and re binds the data to the gridview, but without going into edit mode.
I have a gridview and detailview in an updatepanel. My detailview is setup to display the details of a record that is selected in the gridview. When I edit the values in the detailview and click update it does not update the gridview. If I check my database the values have been changed it just haven't been updated in my gridview. Below is my code for the two objects and their datasources.
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" DataSourceID="RCR_DSM" AllowSorting="True"
DataKeyNames="PartNumber" AutoGenerateSelectButton="True">
<Columns>
[Code]....
I have a gridView that is populated with a dataset from an Oracle Database.
When I click on the EDIT button, it will redisplay my gridView with textboxes so I may make some changes.
Let's say one row is currently:
OPEN_TIME = 1 CLOSE_TIME = 2
When I click EDIT, 1 and 2 are in a textbox. If I change both values to 5 and click UPDATE, it will fire a RowUpdating..
Here is the code from my APP:
Private Sub gvBusinessHours_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvBusinessHours.RowUpdating
Dim strOpenTime As String = DirectCast(gvBusinessHours.Rows(e.RowIndex).FindControl("txtOpenTime"), TextBox).Text
Dim strCloseTime As String = DirectCast(gvBusinessHours.Rows(e.RowIndex).FindControl("txtCloseTime"), TextBox).Text
End Sub
The problem is the values I am getting are the OLD ones and not the new ones... I am getting 1 and 2 and not 5 AND 5...
what I am doing wrong ?
I've a listview in which i'm binding data from objectdata source. I have a requirement where i've to allow edit/delete for only certail listviewitem which meets specific requirement. How do i dynamically set that some item can be only be edited not deleted thus only edit button/link should appear and vice-versa.
View 2 RepliesI'm using a formatting expression with a template field. When the details view goes into edit mode the formatting is applied. It looks great because it applies the currency formatting. It shows up as "$60,000.00" instead of "60,000.0000". But then when I do the update it gets rejected because of the $. Is there a way to keep the formatting for the user to see in edit mode but remove the $ when doing the update so I don't get the error?
The error: Exception Details: System.FormatException: Input string was not in a correct format.
template field:
[Code]....
I'm new to asp.net 3.5 and I have been working through the tutorials using a real access database to learn how to use the new controls. I have an extremely simplistic page setup with a master-details view, the master using the gridview, and the detail using the detailsview controls. Everything seemingly functions correctly, except when I try to update the data in the details view. I make changes to the record, click update and the page posts back but nothing is updated in the database. No errors are given either.
View 10 Repliesi am updating data using editcommand by listview.. i got data max 50 depends on customers sometimes it has a few in the database. i am using listview and sqldatasource. when i update using editcommand in listview. it doesnt update relevant rows. it update to all data in database. why.. i have provided datasoure and list view.
<asp:ListView runat="server" ID="photosListView" DataSourceID="SqlDataSource1"
DataKeyNames="PhotoAlbumID" onitemediting="photosListView_ItemEditing" >
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<div>
<div>
<div>
<asp:Image runat="server" ID="capImage"
ImageUrl="~/AsianaPortals/StudentUnion/Image/PhotoGallery/newadmin/caption.png" />
</div>
<div>
<asp:TextBox runat="server" ID="photodescriptionTextBox" Width="263px" Height="95" TextMode="MultiLine"
Text='<%# Bind("PhotoDescription") %>'/>
</div>.....................................
I have used this before with no issues. Now I get to the page with the detailsview using parms I pass with the key to the row. When the page opens the row I want to update is displayed.
I am having 2 issues. One when I change any of the fields and hit Update (the Edit button),
all rows are updating not just the row displayed. The second problem is I have an update_date and an Updated_by field with code in code behind in the Onitemupdating event and they are not updating at all. (This bit of code works fine in another page I have to updated similar fields on an insert).
I have a strange issue with the FormView. After working through some issues getting the update to work (as this is my first experience with FormViews) I now have a new issue. After I perform an update, and the FormView updates and returns to read mode, if I hit F5 (refresh) the FormView performs another update to the datasource, despite the fact it is read-only mode and none of the fields on the screen are editable.
I would think that a refresh in read mode for the FormView after an edit would simply refresh the data from the database, not perform another update. Again, the FormView is in Read Only Mode, but a refresh is creating another Update event (which I can debug and see if I break in the ItemUpdating event). This only happens after I perform an edit, not when the page initially loads.
I have code Controller :
[Code]....
I use Viewer :
[Code]....
how i can pass Item_Id parameter into "Edit Action" to update?
I have created a simple application to edit data in an access database using gridview but its not working , the results are shown correctly , but when i click update nothing happens..
Here is my code
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1" EnableModelValidation="True" DataKeyNames="id" >
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
SortExpression="id" />
<asp:TemplateField HeaderText="NAME" SortExpression="NAME">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("NAME") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("NAME") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FATHER_NAME" HeaderText="FATHER_NAME"
SortExpression="FATHER_NAME" />
<asp:BoundField DataField="MOTHER_NAME" HeaderText="MOTHER_NAME"
SortExpression="MOTHER_NAME" />
<asp:BoundField DataField="CLASS" HeaderText="CLASS" SortExpression="CLASS" />
<asp:BoundField DataField="gram" HeaderText="gram" SortExpression="gram" /
<asp:TemplateField HeaderText="Remark" SortExpression="Remark">
<EditItemTemplate>
<asp:DropDownList ID="PS" runat="server" SelectedValue='<%# Bind("Remark") %>'>
<asp:ListItem>PASS</asp:ListItem>
<asp:ListItem>FAIL</asp:ListItem>
<asp:ListItem>APPEARED</asp:ListItem>
<asp:ListItem>NOT APPEARED</asp:ListItem>
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Remark") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>"
ProviderName="<%$ ConnectionStrings:ConnectionString2.ProviderName %>"
UpDatecommand = "update [REGULAR] set [NAME] = ?, [FATHER_NAME]=?, [MOTHER_NAME]=?, [CLASS]=?, [gram]=?, [Remark]=? where [id] = ?"
SelectCommand="SELECT [id], [NAME], [FATHER_NAME], [MOTHER_NAME], [CLASS], [gram], [Remark] FROM [REGULAR] WHERE (([CLASS] = ?) AND ([SCHCD] = ?))">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList3" Name="class"
PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DropDownList1" Name="schcd"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>