DataSource Controls :: DetailsView Update And Insert Buttons Do Nothing
Jan 14, 2011
Not sure where I went wrong with this one, but I can't figure it out now... I've got a DetailsView in an UpdatePanel. A dropdownlist controls which person's details are displayed in the DetailsView. I have the DataSource set to an ObjectDataSource, which has select, insert and update methods defined. I also have a method for the ItemCommand, ItemInserting, ItemUpdating and DataBound events of the DetailsView specified.
When I click "New" or "Edit" on the DetailsView I get the open form with either the details for the current person, or a blank form, exactly as I would expect. But when I click the "Update" or "Insert" buttons it does absolutely nothing. I have it running in debug, and have put breakpoints in the ItemCommand, ItemInserting and ItemUpdating methods, right at the top, and it never goes there. The form remains open, and nothing happens. If I click "Cancel", it posts back and goes back to ReadOnly mode.
A couple more minor details that may be important: This page is using a Master page, which is where the ScriptManager is. I'm actually using the ScriptManager from the AjaxControlToolkit. I also have a GridView in this same UpdatePanel, and that has a FileUpload control in it. Because the FileUpload control doesn't work properly without some tweaking, I have to call a RegsiterPostbackTrigger method on page load to link it back to the Master page's scriptmanager. Not sure if that's causing any issues...?
I had this working fine, but then as the page got more complex and I had to change some of the code, at some point it just stopped working and now I can't figure out how to get this working again... I'm happy to post code if necessary, just thought I'd try this first to see if anyone has a quick idea for what to check.
DetailsView has 2 properties: AutoGenerateEditButton, AutoGenerateInsertButton for hadling Update and Insert. Is there any way I can use asp:Button or some other buttons to hadle the same tasks?
I am using 1 textbox with a Ajax Calendar extender to allow my user's to select a date graphically (exp: 12/15/2009). I have another textbox for the hour and minutes in military time(exp: 15:30). I think i have the code to grab the data from the 2 textbox's and combine them to be inserted into the field (exp: 12/15/2009 15:30). Here is my insert code for the Field:
[Code]....
However unless I make all the fields Nullable the insert fails, on top of that none of the other field that I have selected on the Detailsview Insert or Edit are inserted into there fields. Half of my fields have to be non-null values. So how do I fix this?
I can supply additional vb code and the aspx code if needed.
This is the error I'm getting: Cannot insert the value NULL into column 'Operation_type', table '/GAOSDB.MDF.dbo.BC_Perf_Log'; column does not allow nulls. INSERT fails. The statement has been terminated.'
This is the first non-null column.
I need to get this figured out because I have 30 other web pages that will be utilizing the same approach.
It should be simple, but I didn't found yet how to do it. There is only one user (Admin with user name and passowrd, he has a cookie so I know when he is watching the page) I would like to show him the Update/Delete/Insert button options in my ListView, but to the other users I don't want them to be able doing this kind of things, So it should be hidden from them. How I am doing it in C# code? Showing/Hiding these buttons?
I'm trying to catch (in string "s") the primary key for the record being inserted via DetailsView. I have an SqlDataSource connection to an Access 2003 database. The primary key is auto-increment integer (long) field.
I'm struggling with trying to use RIA services from an ASP.NET web site.I created a new web site, added an entity framework model, then added a RIA service that uses that model. I used the DomainDataSource control to bind the ASP.NET controls to the RIA service
I am trying to insert a foreign key into detailsview so that user didn't have to enter value every time. I am using the following code to do this but it is failing. I am not sure what needs to be done now.
Protected Sub LinqDataSource1_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceInsertEventArgs) Handles LinqDataSource1.Inserting LinqDataSource1.InsertParameters("Company").DefaultValue = Session("Company_new").ToString() End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim company As String = Request.QueryString("Company") Session("Company_new") = company End Sub End Class
I have a detailsview which has a button for insert and edit depending on mode plus a cancel button. What I am looking to do, is to use the cancel button to stop any insert or update to the database if clicked.
I have made a DetailsView which in DetailsView there is action to add the data, change data and delete the data ..how to save, change, delete data, which is in the DetailsView without saving it in the database?so far I use viewstate, but I do not know how to apply it in DetailsView ..
how to create insert , update , delete . in detailsview without saving in database ..
private void Bindemptydt() { //Declare a datatable for the gridview DataTable dt = new DataTable(); //Add Columns to the datatable dt.Columns.Add("report_id"); dt.Columns.Add("param_field"); dt.Columns.Add("param_label");
I have a scenario in which the user can add a new option to appear in the list of available choices in a DDL contained in a detailsview when they select an option <Add New>. This displays an AJAX model popup which then allows the user to enter the new option text. Then they hit an Insert button which inserts that new option into the DDL's datasource and I call ddl.DataBind. Subsequently I want to close the modal popup and then display the newly created DDL option as selected.
When I step through the code, everything appears to be working as expected...i.e. the DDL's datasource now has 1 more record than before and the ddl.SelectedValue is the newly created record for its datasource. I can also query ddl.items(99) and see the new option is part of the ddl's items collection and the new record is Selected.
HOWEVER, once the screen comes back from the debugger, the DDL is now showing the newly created option, but still the prior selected option of "<Add New>". And if you pull the DDL down the newly created option is not in the list?
I cannot figure out how that happens...though I suspect it has something to do with the AJAX/Update panel. Here's some code:
I have a web project with more than 100 input boxes , so in every INSERT and UPDATE to sql server in front of sql statement I must put the golden N word, so it will be in UNICODE mode. Do we have some alternative of this? How can i make it in EVERY UPDATE and INSERT to sql server in data layer level- make it like u insert UNICODE (without N word) How can you get MSSQL server to accept Unicode data by default into a VARCHAR or NVARCHAR column?
I know that you can do it by placing a N in front of the string to be placed in the field but to by quite honest this seems a bit archaic in 2008 and particuarily with using SQL Server 2005. Example:
cmd = New SqlCommand(sql, ConnectionFromEnum(whichDatabase)) cmd.Connection.Open() i = cmd.ExecuteNonQuery()
so....
the question is : Am I suppose to make something with SQLCOMMAND to set- "enter evthng like it is UNICODE, with N auto"? or i must specify UNICODE by default in somewhere else? just to indicate that i already set in web.config
So global questions HOW TO MAKE INSERT AND UPDATE Unicode by default in every insert and update methods, without placing N word in front of literal string?
Is there a way to create a contact form that takes the name. address and other info for the master record; Then, somehow, on the same page, allow the user to enter multiple contact info as chid records (i.e. phone, email, etc.)
All this using the Objec DataSource or SQL DataSource (which ever is easy) and doesn't require writing too much code.
After this and in the same procedure i want to update the inserted or the updated record which occared in the above code with the follwing update statment :
[Code]....
updating mark is completed successfully if the record is existed (Update Case) but if the record does not exist (new record) ... the update of the mark is not occured ..
Existing records can be updatedNew records can be insertedAll existing records can be deleted & new ones can be insertedExisting records have a primary key field New ones are just blank inserts
All this detail is stored in a data table. On form update I only want to update existing (only modified rows) & insert new rows. I have gone about loading the changed records in a new data table
In my detailsview, I have an emptydatatemplate set up to allow users to enter new records. The code works. However, once the record is inserted, the detailsview defaults to a standard insert screen. I know this will cause confusion for the users. I would prefer the detailsview to either show in edit mode or a read-only mode. I have used detailsview.changemode and detailsview.currentmode in the custom sub created for the add new button of the emptydatatemplate- neither of which do what I was hoping. It would be even better if when there was no data, it defaulted to the insert screen (which seems like that should be an easy, no-brainer way for .net to function) but it doesn't. Or, I don't know how to accomplish it.
I don't want to force the user to click cancel after inserting an item through the emptydatatemplate just to be able to use the detailsview for other records.
I have been in the process of updating my code with security methods, and I've been learning this from [URL] (or "Security Guidelines: ASP.NET 2.0"). In the middle of the page under "When Constructing SQL Queries, Use Type Safe SQL Parameters" it says "Use type safe parameters when constructing SQL queries to avoid possible SQL injection attacks that can occur with unfiltered input". Now, what they suggested was to use code like:
"DataSet userDataset = new DataSet(); SqlDataAdapter myCommand = new SqlDataAdapter(LoginStoredProcedure", connection); myCommand.SelectCommand.CommandType = CommandType.StoredProcedure; myCommand.SelectCommand.Parameters.Add("@au_id", SqlDbType.VarChar, 11);........"
So, that would be how I would modify my current code base to use type safe parameters in sql updating/inserting.
Getting to my actual question, as it was said "Use type safe parameters when constructing SQL queries to avoid possible SQL injection attacks that can occur with unfiltered input". First off, this suggests that this should apply to unfiltered input. Also, in their example they only did this for an ID.
So, what I'd like to know, when it comes to "unfiltered input", does this mean as long as the input is unfiltered I must use type safe parameters, or even filtered input shall have this (just to be sure), like, input that has been ran through a regularexpression check? Shall I do this for all values I insert/update into the database, or just IDs and important things?
The way I see it right now is that it would be a good precaution to just do type safe checks on everything (literally) that updates/inserts into the database just to be extra safe. But, I really am unsure if this is really the best idea, because if I did, would this possibly cause overprocessing of information? Can this cause too much strain on server resources? If my fears serve true, what would be a good suggestion of how I could implement this properly without having to worry about what I said?
when i want insert a record i see an error like this Can't perform Create, Update, or Delete operations on 'Table(MainMenuLink)' because it has no primary key. with this codes:
MyLinqDataClassesDataContext db = new MyLinqDataClassesDataContext(); MainMenuLink li = new MainMenuLink { Link = "www.tprogrammer.com", LinkSubject = "subject" }; db.MainMenuLinks.InsertOnSubmit(li); [code]....
How can I display edit and new buttons without duplication in a detailsview control? This is a question from a past exam paper for 70-562. Part of the question is below:
"The company CIO assigns a task to you. According to his requirement, you must make sure that the users can insert and update content in the DetailsView1 control. Besides this, you have to prevent duplication of the link button controls for the Edit and New operations. At line 3, which code segment should be inserted?"
I have a gridview and when i click on the edit button i will get the modalpopup window which is having a popup window i want to update the data in that details view and refresh the data into gridview also.
I have a problem with DetailsView linked with Database, DetailsView is Insert/Edit enabled, and adding/ediditng data works, however........ when I add a new record (DetailsView in Insert mode) and press INSET instead going to record I have just created in Read-Only Mode it shows me blank form, it looks that the "linking" field is null.