2017-04-25 5 views
0

Dropboxの最初の項目はページがロードされても機能しませんが、Dropboxの2番目の項目を選択すると、私が前に選択した最初のアイテムに戻ると、今度はこれが動作します。助けてください。おかげDropboxの最初の項目は、C#を使用してページを最初にロードするときに機能しません。

HTMLコード

<asp:DropDownList ID="DropDownListUpdateSample" runat="server" Height="37px" Width="132px" CssClass="auto-style111" AutoPostBack = "true" OnSelectedIndexChanged="DropDownListUpdateSample_SelectedIndexChanged" AppendDataBoundItems="False"> 

C#コード

//Code to populate the Dropbox 

    using (SqlCommand cmd5 = new SqlCommand(@"SELECT  Patient.MBID, Sample.SampleID 
     FROM   Patient INNER JOIN 
      Sample ON Patient.MBID = Sample.MBID 
     WHERE 
      Patient.Surname = @Surname and Patient.DOB = convert(datetime, @DOB, 103) 
            ORDER by Sample.SampleID ASC ", con)) 
     { 

     cmd5.Parameters.AddWithValue("@Surname", txtSearchSurname.Text); 

     cmd5.Parameters.AddWithValue("@DOB", txtSearchDOB.Text); 

     SqlDataAdapter da5 = new SqlDataAdapter(cmd5); 
     DataSet dt5 = new DataSet(); 
     da5.Fill(dt5, "Sample"); 
     DataTable myDataTable = dt5.Tables[0]; 

     // Loop to insert the Sample ID in the Drop box 

     foreach (DataRow tempRow_Variable in myDataTable.Rows) 
     { 
      var tempRow = tempRow_Variable; 
      DropDownListUpdateSample.Items.Add(tempRow["SampleID"].ToString()); 

     } 
    } 


//Code to Populate the form after an item is selected from the Dropbox 

    protected void DropDownListUpdateSample_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     using (SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["Molecular"].ConnectionString)) 
     { 
      con.Open(); 
        using (SqlCommand st = new SqlCommand(@"SELECT * 
          FROM  Sample 
          WHERE 
          [email protected]", con)) 
        { 

        st.Parameters.AddWithValue("@SampleID", DropDownListUpdateSample.SelectedItem.Value); 

        using (SqlDataReader reader = st.ExecuteReader()) 
        { 
         while (reader.Read()) 
         { 

          txtUpdateSampleID.Text = reader["SampleID"].ToString(); 
          txtUpdateSampleType.Text = reader["SampleType"].ToString(); 
          txtUpdateSampleDate.Text = reader["SampleDate"].ToString(); 
          txtUpdateSampleTrial.Text = reader["SampleTrial"].ToString(); 
          DropDownListUpdateFirstSample.SelectedItem.Value = reader["FirstSample"].ToString(); 
          txtUpdateSampleComments.Text = reader["Comments"].ToString(); 
          txtUpdateSampleConsultant.Text = reader["ConsultantName"].ToString(); 
          DropDownListUpdate.SelectedItem.Value = reader["Diagnosis"].ToString(); 
          DropDownListUpdateConsentConfirm.SelectedItem.Value = reader["ConsentConfirmed"].ToString(); 
          txtUpdateConsentDate.Text = reader["DateConsent"].ToString(); 
          txtUpdateOrther.Text = reader["OtherConsent"].ToString(); 
          DropDownListUpdateSectionDecline.SelectedItem.Value = reader["SectionDecline"].ToString(); 
          DropDownListUpdateQuarantine.SelectedItem.Value = reader["Quarantine"].ToString(); 
          DropDownListUpdateClinicalArchive.SelectedItem.Value = reader["ClinicalArchive"].ToString(); 
          DropDownListUpdateResearch.SelectedItem.Value = reader["Research"].ToString(); 
          //DropDownListUpdateClinicalArchive.SelectedItem.Value= reader["Research"].ToString(); 

        } 
        } 
       } 
      con.Close(); 
     } 

    } 
+0

'selectedindexchanged'イベントがページがロードされたときに呼び出されることはありません – WhatsThePoint

+0

あなたがデータソースを結合した後、' SelectedValue'を設定する必要があります 'dropdownlist.SelectedValue = youValue;あなたの助け – TriV

答えて

1

使用以下のコード:

public void functionForSelectedValue(int id) 
{ 
    using (SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["Molecular"].ConnectionString)) 
    { 
     con.Open(); 
     using (SqlCommand st = new SqlCommand(@"SELECT * 
         FROM  Sample 
         WHERE 
         [email protected]", con)) 
     { 

      st.Parameters.AddWithValue("@SampleID", id); 

      using (SqlDataReader reader = st.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 

        txtUpdateSampleID.Text = reader["SampleID"].ToString(); 
        txtUpdateSampleType.Text = reader["SampleType"].ToString(); 
        txtUpdateSampleDate.Text = reader["SampleDate"].ToString(); 
        txtUpdateSampleTrial.Text = reader["SampleTrial"].ToString(); 
        DropDownListUpdateFirstSample.SelectedItem.Value = reader["FirstSample"].ToString(); 
        txtUpdateSampleComments.Text = reader["Comments"].ToString(); 
        txtUpdateSampleConsultant.Text = reader["ConsultantName"].ToString(); 
        DropDownListUpdate.SelectedItem.Value = reader["Diagnosis"].ToString(); 
        DropDownListUpdateConsentConfirm.SelectedItem.Value = reader["ConsentConfirmed"].ToString(); 
        txtUpdateConsentDate.Text = reader["DateConsent"].ToString(); 
        txtUpdateOrther.Text = reader["OtherConsent"].ToString(); 
        DropDownListUpdateSectionDecline.SelectedItem.Value = reader["SectionDecline"].ToString(); 
        DropDownListUpdateQuarantine.SelectedItem.Value = reader["Quarantine"].ToString(); 
        DropDownListUpdateClinicalArchive.SelectedItem.Value = reader["ClinicalArchive"].ToString(); 
        DropDownListUpdateResearch.SelectedItem.Value = reader["Research"].ToString(); 
        //DropDownListUpdateClinicalArchive.SelectedItem.Value= reader["Research"].ToString(); 

       } 
      } 
     } 
     con.Close(); 
    } 

} 
protected void DropDownListUpdateSample_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    functionForSelectedValue(DropDownListUpdateSample.SelectedItem.Value); 
} 

そして、ページのロード中:

コール

foreach (DataRow tempRow_Variable in myDataTable.Rows) 
    { 
     var tempRow = tempRow_Variable; 
     DropDownListUpdateSample.Items.Add(tempRow["SampleID"].ToString()); 

    } 
DropDownListUpdateSample.Items.FindByValue("IdforWhichYouWantTobindIt").Selected = true; 
functionForSelectedValue(DropDownListUpdateSample.SelectedItem.Value); 

ホープこれはあなたの問題を解決します。

+0

おかげで、それはあなたの問題を解決した場合答えを受け入れてください。 –

+0

@EricMbiadaため' –

関連する問題