我尝试在这样的asp.net中发送邮件
码
if ( DropDownListcontrol!= null)
{
if (DropDownListcontrol.SelectedValue == true)
{
//get Current EMAIL_ID from the DataKey
string emailId =
((Label)Repeater2.Items[i].FindControl("Label2")).Text;
//write code to send mail
SendEmailUsingGmail(emailId);
dt.Clear();
dt.Dispose();
}
else if (DropDownListcontrol.SelectedValue == false)
{
}
}
但这里出现在这一行
DropDownListcontrol.SelectedValue == false
错误: 运算符'=='不能应用于'string'和'bool'
类型的操作数我怎么解决这个问题?
答案 0 :(得分:2)
DropDownListcontrol.SelectedValue
这会返回string。您不能将布尔运算符应用于它。
我现在不认为需要if
声明。你想要做什么?
如果您的下拉列表中的值实际上是“true”和“false”,则只需使用文字字符串比较:
if(DropDownListcontrol.SelectedValue == "true")
答案 1 :(得分:2)
将其更改为:
DropDownListcontrol.SelectedValue == "true"
或者将您选择的值转换为bool。
答案 2 :(得分:1)
下拉列表是否包含表示true / false的字符串值(例如“True”,“False”)?然后你必须将它们转换为布尔值(参见:Boolean.TryParse
),或者只是进行字符串比较(例如SelectedValue.Equals("True")
)。
附注:如果你有bool isFubar
,则永远不需要写if (isFubar == true)
。您只需撰写if (isFubar)
。
答案 3 :(得分:1)
DropDownList SelectedValue property is a string,因此您将无法将字符串与bool值进行比较 - 这是错误消息(可能不是很清楚)所说的。
您是否试图判断DropDownList中是否有选定的值,如果有,那么您是否要执行某些操作(如发送电子邮件)?
或者,DropDownList是否包含一些您想用来确定是否应该发送电子邮件的值?即“真”和“假”?
如果您试图判断DropDownList中是否存在选定值,则检查SelectedValue是否为空。但是,可能有always an item selected in the list。
答案 4 :(得分:1)
您应该更详细地了解下拉列表中的值。
无论如何,我的建议:
如果下拉列表中的值为“true”和“false”,则必须使用:
if(DropDownListcontrol.SelectedValue == "true")
{
}
如果您只是检查用户是否在下拉列表中选择了某个值,那么您必须使用:
if(DropdownListControl.SelectedIndex == -1)
{
}