如何在下拉列表中将所选值作为名称而不是ID?

时间:2018-01-23 05:30:29

标签: c#

我有下面提到的代码。

protected void Page_Load(object sender, EventArgs e)
{       
    if (!IsPostBack)
    {
        SetAllCountries();        
        loadInvoiceDetails();
        if (lstCountryy.SelectedValue == "U.A.E" || lstCountryy.SelectedValue == "BAHRAIN" || lstCountryy.SelectedValue == "SAUDI ARABIA")
        {

        }
        else
        {

        }
    }
}


 private void loadInvoiceDetails()
 {
     ...........
     ..........
     string queryStrLoadInq = "SELECT COMPANY,COUNTRY,EMAIL,CONTACT_NAME FROM  CRM_INQUIRY_PERTICIPANT WHERE INQUIRY_ID=" + currInquiryId + " ";           
     ClassDtBaseConnect clsDtResult = new ClassDtBaseConnect();
     DataTable dtInquiry = clsDtResult.GetDataTable(queryStrLoadInq);
     lstCountryy.SelectedValue = dtInquiry.Rows[0]  ["country"].ToString();//Selected value:18(country id)
}



 protected void SetAllCountries()
    {
        try
        {
            string queryStrUserType = "SELECT country_id,country_name FROM  crm_countries";
            ClassDtBaseConnect clsDtResult = new ClassDtBaseConnect();
            DataTable dt = clsDtResult.GetDataTable(queryStrUserType);
            lstCountryy.DataSource = dt;
            lstCountryy.DataValueField = "country_id";
            lstCountryy.DataTextField = "country_name";
            lstCountryy.DataBind();
            lstCountryy.Items.Insert(0, "--Select--");

        }
        catch (Exception Ex)
        {

        }
    }

lstcountryy是我的下拉列表。所以我将所选值作为国家/地区的ID。而不是我想要国家的名字。执行后,我得到了国家的名字。

我也想在代码中使用国家/地区的名称(选定值)。我尝试使用lstcountryy.selecteditem.text,但我得到了这个国家的名字。

有2个表:查询表包含countryid,country表包含countryid和name。

我知道这是一个要问的基本问题,但我刚开始学习C#。任何帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用SelectedItem属性来获取所选项目的文字。

var text = lstCountryy.SelectedItem.Text;
if (text == "U.A.E" || text == "BAHRAIN" || text == "SAUDI ARABIA")
{

}

另外,我认为,你应该改变你的做法。这是一个非常脆弱的代码。您可以将特殊国家/地区存储在数据库中。