Chidi Okeh
Chidi Okeh

Reputation: 1557

How do I populate multiple textboxes based on value of another textbox or dropdownlist?

hello again.

We have a webform that employees use to make request for such things as VPN access to the company resources from remote locations.

I am populating a dropdownlist box from Active Directory. This works fine.

Then I have a textbox that is also populated from Active Directory by simply assigning the value of the logged in user as shown:

textbox1.Text = User.Identity.Name

Based on the value of my name assigned to textbox1.Text

The rest of the texboxes are populated with my work information with the following code:

    textbox1.Text = User.Identity.Name
    textbox1.Text = StrConv(textbox1.Text, vbProperCase)

    txtdate.Text = DateTime.Now.ToString("MM/dd/yyyy")
    Try
        'Creates a Directory Entry Instance with the Username and Password provided
        Dim deSystem As New DirectoryEntry("LDAP://OU=Departments,DC=domaname, DC=com", "usrname", "password")

        'Authenticacion type Secure
        deSystem.AuthenticationType = AuthenticationTypes.Secure

        'Creates a Directory Searcher Instance
        Dim dsSystem As New DirectorySearcher(deSystem)

        'sAMAccountName is equal to our username passed in.            
        dsSystem.Filter = "sAMAccountName=" & textbox1.Text

        'Properties that the Procedures will load from Active Directory
        dsSystem.PropertiesToLoad.Add("mail") 'email address
        dsSystem.PropertiesToLoad.Add("department") 'dept
        dsSystem.PropertiesToLoad.Add("physicalDeliveryOfficeName") 'office
        dsSystem.PropertiesToLoad.Add("title") 'title, eg programmer1
        dsSystem.PropertiesToLoad.Add("telephoneNumber") 'phone
        dsSystem.PropertiesToLoad.Add("streetAddress") 'street address
        dsSystem.PropertiesToLoad.Add("l") 'city
        dsSystem.PropertiesToLoad.Add("st") 'state
        dsSystem.PropertiesToLoad.Add("postalCode") 'zip code
        dsSystem.PropertiesToLoad.Add("EmployeeId") 'empid 
        dsSystem.PropertiesToLoad.Add("givenName") '//first name from active directory
        dsSystem.PropertiesToLoad.Add("sn") '//lastname from active directory
        'Find the user data
        Dim srSystem As SearchResult = dsSystem.FindOne()

        'Obtains the properties recently loaded
        txtemail.Text = srSystem.Properties("mail").Item(0).ToString
        dept.Text = srSystem.Properties("department").Item(0).ToString
        office.Text = srSystem.Properties("physicalDeliveryOfficeName").Item(0).ToString
        txttitle.Text = srSystem.Properties("title").Item(0).ToString
        phone.Text = srSystem.Properties("telephoneNumber").Item(0).ToString
        workaddress.Text = srSystem.Properties("streetAddress").Item(0).ToString
        city.Text = srSystem.Properties("l").Item(0).ToString
        state.Text = srSystem.Properties("st").Item(0).ToString
        zipcode.Text = srSystem.Properties("postalCode").Item(0).ToString
        hiddenempId.Value = srSystem.Properties("EmployeeId").Item(0).ToString
        HiddenFName.Value = srSystem.Properties("givenName").Item(0).ToString
        HiddenLName.Value = srSystem.Properties("sn").Item(0).ToString

This works fine as well.

Here is where my problem lies.

Initially, when the user logs in, based on logged user name from Active Directory, the rest of the textboxes get populated with the user's info.Sorry for repeating myself here.

However, sometimes, the user logged in is not necessarily the user needing reguest.

In other words, I can log in to fill a request for another employee.

In this case, I am required to select the name of the user I am completing the request for from the dropdownlist that is populated from Active Directory.

When I select this name from dropdownlist, it replaces my own name on textbox1.Text.

This works fine but the rest of the textboxes retain my own information.

What do I need to do to ensure that the name that replaces my original name on textbox1.Text also replaces the information on the rest of the textboxes?

I will post additional information as requested.

Many thanks in advance

Upvotes: 0

Views: 863

Answers (1)

Steven Doggart
Steven Doggart

Reputation: 43743

Instead of loading all the text boxes when the form loads, load them from the TextChanged event of the user name text box. That way, any time the user name text box changes, all the other text boxes will automatically be re-loaded to reflect the change.

Upvotes: 1

Related Questions