Solved

Formview - Binding to edit

Posted on 2009-05-05
3
522 Views
Last Modified: 2012-05-06
My formview is having an issue. I have two dropdown boxes. Facility and Department. The department list is dependent facility. So I call the facility and then then pull the department where facility is equal to what is in that first dropdown. For example..  First dropdown box is Microsoft and the dropdown list all the departments. Then I  using SelectedValue = (Bind etc etc)  to get the specific Facility (Microsoft) and department that is associated with the formview record.
This all works fine.
Now the issue.  If the user wants to edit that facility or department, it does not work. I get an error on the Bind.  Because when I change the facility, the department list needs to change and the Bind is no longer valid.  
So how do I get the field to unbind from the formview when the facility is changed?
If it is not possible, suggestions on how make this form user friendly.  

This form is create by a user.  When they submit it, another user gets the email.  That user logs in and looks at the original submission and they may need to make changes like directly informaton to a differnt department.

0
Comment
Question by:aninec
  • 2
3 Comments
 
LVL 15

Expert Comment

by:NazoUK
ID: 24315077
Yeah, this is a known issue with the way databinding works and a bit awkward to get around.
What I tend to do is remove the SelectedValue = '<%#Bind.....' from the dropdownlist that has its items updated, then in the OnUpdating event of whichever datasource type you are using manually get the value out of the formview using FindControl and plug that into the updateparameters, business object or whatever you are using.

It's a bit difficult to give a concrete example without knowing the datasource you are using. Is it a sqldatasource, object data source etc?
0
 

Author Comment

by:aninec
ID: 24318887
Its SQL.  I am not sure how to approach your method.  
0
 
LVL 15

Accepted Solution

by:
NazoUK earned 500 total points
ID: 24323636
OK, in your sqldatasource add the following: OnUpdating="sqlds_Updating" OnInserting="sqlds_Updating"
You'll also need a parameter in updateparameters and insertparameters that correspond to the field name:

<asp:Parameter Name="fieldName" Type="Int32" DefaultValue="0" />

Then in your code behind add a method to handle this event and get the values out of the FormView and put them into the parameters:

C#:

    protected void sql1_Updating(object sender, SqlDataSourceCommandEventArgs e)
    {
             DropDownList dd = (DropDownList) yourFormView.FindControl("DropDownName");
             e.Command.Parameters["fieldName"].Value = Convert.ToInt32(dd.SelectedValue);
    }

VB:

    Protected Sub sql1_updating(sender as object, e as SqlDataSourceCommandEventArgs)
    {
            Dim dd as DropDownList = Ctype(yourFormView.FindControl("DropDownName"),DropDownList)
            e.Command.Parameters("fieldName").Value = CInt(dd.SelectedValue)
    }

This assumes your dropdowns store int values, if not you'll need to change the code as appropriate.
0

Featured Post

ScreenConnect 6.0 Free Trial

Check out the updates in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI that improves session organization and overall user experience. See the enhancements for yourself!

Question has a verified solution.

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

Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

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