我有下面提到的代码。
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#。任何帮助将受到高度赞赏。
答案 0 :(得分:0)
您可以使用SelectedItem
属性来获取所选项目的文字。
var text = lstCountryy.SelectedItem.Text;
if (text == "U.A.E" || text == "BAHRAIN" || text == "SAUDI ARABIA")
{
}
另外,我认为,你应该改变你的做法。这是一个非常脆弱的代码。您可以将特殊国家/地区存储在数据库中。