AJAX :: Refreshing DDL In Detailsview After Insert New Record In DDL Datasource
Aug 5, 2010
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:
Is it possible to code DetailsView to go to the new record I've just insertted? Currently it appears to default to the first record, utlimatly I'd like it sorted Last name, first name and upon an Insert it should go to that new record on pageload.
Scenario : I have two database tables with one to many relationship. eg:- City and Related news. So I have a gridview(Gridview1) which lists out all the cities and allows edit, delete of the gridview rows. Now since i wanted to display all news for the city, i have a nested gridview as a column in this Gridview1. This nested gridview displays all the news for the cities. And I have edit, delete buttons for this gridview too - So far, good - works fine.
Now what I would like to do is - To insert a new news item for a city. For this, I attached a detailsview to my nested grid(gridview2), and tried to insert. I need the primary key id of city table from the first grid (gridview1) to insert the news into the second database table and I could not access this value from the parent gridview. My gridview1 does not have datakeyname, it is programatically bound.
Also, When the gridview/detailsview is nested, it does not get listed in the event-handler list. So I cannot use say, detailsview1_iteminserting. I do not how to add this event handler
Has anybody done anything similar? When I started, it looked like a pretty straightforward thing - There must be some way to do this. But I just can't get it to work. How do you usually insert into the child table in a one-to-many relationship? Should i just be using two separate gridviews?
GirdView and DetailsView in defautl.aspx. When i insert a new record using detailsview it works and gridview is updated. But i want jump to the right page in gridview after importing the record. How can i highlight the new row imported record in Girdview. I use ajax so gridview and detailsview are in updatepanel.
This would seem to be quite a trivial task, however I am having trouble retrieving the identity of the record inserted using the detailsview.insert() in the code behind. It would seem that detailsview.DataKey.Value would contain this value, but it is null after the insert is performed.
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.
Conseptually what I'm doing is simple, and technically it may even be simple, but I'm still rusty. Here's what I'm trying to do:
I have a webform that allows the user to enter a new record, and in there I have also included a couple FileUpload controls. Upon clicking the "Save" button, I'm saving the details entered into one table (ITEMS), and also inserting the FileUpload details (path, id, upload_user) into another table ATTACHMNTS). Because one ITEM can have many attachments, I needed to split the tables up. So on save, I need to save the ITEM, save the ATTACHMENT, and then also put the ITEM_ID in the ATTACHMENT table. I'm second guessing myself because I think all I'd have to do is after I do the ITEM insert, do a SELECT MAX on the ITEM table and hold the newest (MAX) id in a variable and then use it in the ATTACHMENTS update. I'm not 100% on this because there IS a chance that someone else could save a few milliseconds later and I'll link the wrong ITEM. See my delima?
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 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
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.
I'm very new to this area and am using ASP.NET 3.5 with WMD 2008 Express Edition and VB code.
How do I write records to the SQL database using VB? I want to use the connection string, etc used in the ASP.NET controls if possible.
My website is a Rugby Club site and I've an SQL database of match fixtures which include TeamId(1XV, 2XV, etc.), Season(2008, 2009, etc) and match date.
I allow some users to update the fixture details but want to insert a series of new fixture records for the neext season which contain just TeamId Season and Match Dates. I therefore want to take the season and Team Id from label fields and then create match dates by adding seven days to a start date.
I use the following code to insert recode to a sql 2008 table, the field ID of DBProgram is IDENTITY, so SQL 2008 SERVER will pass a value to it automatically. How can I get the ID value of the record I just insert ?
DBProgram dbProgram = new DBProgram(); db.DBPrograms.InsertOnSubmit(dbProgram); db.SubmitChanges();
I converted code from VB that works to c# to insert a record in an SQL daTA BASE.
The VB code is as follows:
Insert a new record into Contact Dim connectionString As String = ConfigurationManager.ConnectionStrings("aspnetdbConnectionString").ConnectionString Dim insertSql As String = "INSERT INTO Contact(UserId, Notes) VALUES(@UserId, @Notes)" Using myConnection As New SqlConnection(connectionString)
I am going to insert Multiple record IN sql using storedProcedure from gridview...
for this purpose i am using cell concatinating method and send whole gridview cell data in string variable.
i have tried xml document method or sending data in table through looping as well but didn't satisfy from both of them... b/c concatinating method required a delimeter for seperation(for which i have restrict the user from that sepereator ) and xml method required an extra file which is not a efficient approach .
how can i insert a gridview(multiple) record using store procedure.if record exist then it first Delete then Insert in a particular CRS_CODE.my table is below.
I'm using the linq to entity command to perform a record update. I want to set one of the fields back to NULL but I'm not sure how do it. I have a query such as
Dim record = From r in db.LISTS where r.ID = refID Select r record.Title = txtTitle.text if txtDetail.text = "" then record.Detail = end if
I have an orders table with a column names orderID. What I want to do is insert a new record and get the value from the new orderID column. The orderID is my Primary key. The Insert SQL I have now is -
INSERT INTO orders (creditAutorizarionNumber, OrderName, OrderPersonPhone, OrderPersonEmail) VALUES (@creditAutorizarionNumber,@OrderName,@OrderPersonPhone,@OrderPersonEmail)
How do I write the query to get the newly entered orderID ?
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 ..
i Am using Special character while insert in the database. When i user single Quotes('), it shows an error that "Unclosed quotation mark after the character string" How can i over come this issue. But i want to insert the special characters"
How do I set my insert identity return value parameter in codebehind? I have working code now but i have all of my parameters set in codebehindexcept the following:
I want users to select a record in the GridView and then have that record open up in the Detailsview. How would I go about getting these two tools to communicate?
when need to insert into Text.boxes details from user (name,e-mail, e.tc.) and to get record of it into DB on other page. I try to get after pressing Submit btn:
I have a webform with a gridview displaying records which are selectable thru a "Select" button on the GridView control. Below the GridView, I have a DetailsView control showing details of the selected GridView record. Also, I have a "New" button which allows me to add to the GridView and associated table thru SQL. In the DetailsView, I have a delete button which allows me to delete from the GridView and associated table thru SQL.
The issue I am having is that when I click the "New" button (to add a record), it performs correctly and displays the input-ready DetailsView with 2 fields for input. However, if I cancel that, and click "New" again, the DetailsView does not display at all.I am certain that I am binding the data correctly as I have several tests which implement the same logic with the only difference being that the tests require only one field while I now require 2 fields.
I want to check if the record is already exists before insert using Ajax ActionLink in Create View. I am getting error 'Object reference not set to an instance of an object.' Here is a code in View :
<div class="editor-label"> <%= Html.LabelFor(model => model.PolicyId) %> </div> <div class="editor-field"> <%= Html.TextBoxFor(model => model.PolicyId) %> <%= Html.ValidationMessageFor(model => model.PolicyId) %> <em>can not be changed later.</em> //error occurs here <%= Ajax.ActionLink("Check", "CheckIfExists", "Life", new { PolicyId = Model.PolicyId }, null)%> </div>
And Controller action :
public JavaScriptResult CheckIfExists(string PolicyId) { if (lifeRepository.IsExists(PolicyId)) return JavaScript("alert(' Already Exists');"); else return JavaScript("alert(' Not Exists');"); }
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]....