2017-04-16 23 views
0



ドロップダウンリストが機能しない理由がわかりません。私はstackoverflowを通して見て、私は私に対応する質問を見つけることができませんでした。ドロップダウンリストにはデータベース内のすべての名前が表示されますが、名前を選択するとデータベース内の名前に付随するデータはテキストボックスに表示されません。最初の名前のデータがテキストボックスに正しく読み込まれますが、その後はデータは変更されません。 datasouceselectコードについては、私が間違って何かをしているに違いない。ここに私のコードです。
ドロップダウンリストの選択によってデータが変更されない

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 

public partial class Contact : System.Web.UI.Page 
{ 

    private EmployeeContact selectedContact; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     // if it is not a PostBack, 
     // then bind the Employee data to the ddlContact dropdown list 
     if (!IsPostBack) DropDownList1.DataBind(); 
     // Store the Contact data in the selectedContact object  
     selectedContact = this.GetselectedContact(); 
     // Display the ContactID from the object in the txtContactID.Text  
     txtContactID.Text = selectedContact.ContactID; 
     // Display the Name from the object in the txtFirst.Text 
     txtFirst.Text = selectedContact.Contact_FirstName; 
     // Display the Street from the object in the txtLast.Text 
     txtLast.Text = selectedContact.Contact_LastName; 
     // Display the City from the object in the txtCell.Text 
     txtCell.Text = selectedContact.Contact_Cell; 
     // Display the State from the object in the txtOfficePhone.Text 
     txtOfficePhone.Text = selectedContact.Contact_OfficePhone; 
     // Display the Zip from the object in the txtEmail.Text 
     txtEmail.Text = selectedContact.Contact_Email; 
     // Display the Phone from the object in the txtPhone.Text 
     txtCompany.Text = selectedContact.Contact_Company; 
     // Display the Email from the object in the txtPosition.Text 
     txtPosition.Text = selectedContact.Contact_Position; 
     // Display the Phone from the object in the txtZip.Text 
     txtZip.Text = selectedContact.Contact_Zip; 
     // Display the Phone from the object in the txtStreet.Text 
     txtStreet.Text = selectedContact.Contact_Street; 
     // Display the Phone from the object in the txtCustomerSince.Text 
     txtCustomerSince.Text = selectedContact.Contact_CustomerSinceDate; 
     // Display the Phone from the object in the txtDateCreated.Text 
     txtDateCreated.Text = selectedContact.Contact_DateCreated; 
     // Display the Phone from the object in the txtNotes.Text 
     txtNotes.Text = selectedContact.Contact_Note; 
    } 

    private EmployeeContact GetselectedContact() 
    { 
     // Use DataView to get a datatable 
     DataView Contacts = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); 
     // Format a RowFilter   
     Contacts.RowFilter = string.Format("ContactID = '{0}'", DropDownList1.SelectedValue); 
     // Get a specific row from the selected customer table row 
     DataRowView row = (DataRowView)Contacts[0]; 
     // Instantiate a EmployeeContact object 
     EmployeeContact c = new EmployeeContact(); 
     // Store the ContactID in the object 
     c.ContactID = row["ContactID"].ToString(); 
     // Store the FirstName in the object 
     c.Contact_FirstName = row["Contact_FirstName"].ToString(); 
     // Store the LastName in the object 
     c.Contact_LastName = row["Contact_LastName"].ToString(); 
     // Store the Cellphone in the object 
     c.Contact_Cell = row["Contact_Cell"].ToString(); 
     // Store the OfficePhone in the object 
     c.Contact_OfficePhone = row["Contact_OfficePhone"].ToString(); 
     // Store the Email in the object 
     c.Contact_Email = row["Contact_Email"].ToString(); 
     // Store the Company in the object, 
     c.Contact_Company = row["Contact_Company"].ToString(); 
     // Store the Position in the object, 
     c.Contact_Position = row["Contact_Position"].ToString(); 
     // Store the Street in the object, 
     c.Contact_Street = row["Contact_Street"].ToString(); 
     // Store the Zip in the object 
     c.Contact_Zip = row["Contact_Zip"].ToString(); 
     // Store the CustomerSinceDate in the object 
     c.Contact_CustomerSinceDate = row["Contact_CustomerSinceDate"].ToString(); 
     // Store the DateCreated in the object 
     c.Contact_DateCreated = row["Contact_DateCreated"].ToString(); 
     // Store the Notes in the object 
     c.Contact_Note = row["Contact_Note"].ToString(); 
     // Return the object  
     return c; 



    } 

} 

+1

おそらく、イベントハンドラを登録して、[change event]をドロップダウンする必要があります(https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.textchanged(v = vs.110 ).aspx)、適切なデータをそこにロードします。現在のロジックは、ページロード時にデータをロードするだけで、デフォルトのドロップダウン選択用のデータをセットアップしますが、その後は変更されません。 –

+0

ありがとうございました!それは今働く。 – Cory

答えて

0

はあなたがドロップダウンリストの選択が「OnSelectedIndexChanged」イベントハンドラ内のコードを変更扱うことを確認してください、ありがとうございました。

Contacts.RowFilter = string.Format("ContactID = '{0}'", DropDownList1.SelectedValue); 

がために:

Contacts.RowFilter = string.Format("ContactID = {0}", DropDownList1.SelectedValue); 

また、ContactID列が数値intまたは類似した何か、もしそうなら、あなたはこの行から単一引用符を削除していることを確認しているようです

希望します。

関連する問題