【问题标题】:First item of the Dropbox is not working when the page first load using C#使用 C# 首次加载页面时,Dropbox 的第一项不工作
【发布时间】:2017-09-22 06:22:27
【问题描述】:

当页面加载时,Dropbox 的第一项不工作,但如果选择 Dropbox 中的第二项,表单将填充相关数据。如果我回到之前选择的第一个项目,这次它会起作用。请提供任何帮助。谢谢

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
                             SampleID=@SampleID", 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();
       }

    }

【问题讨论】:

  • 页面加载时不会调用selectedindexchanged事件
  • 绑定数据源dropdownlist.SelectedValue = youValue;后要设置SelectedValue

标签: c# html sql-server


【解决方案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
                         SampleID=@SampleID", 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);

希望这能解决您的问题。

【讨论】:

  • 感谢您的帮助
  • @EricMbiada,如果它解决了你的问题,请接受答案。
猜你喜欢
  • 2014-11-12
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多