我有一个下拉列表(值为'CMC'和'CHF')和两个文本框。 当我从下拉列表中选择一个选项时,会出现一个文本框控件(可见性是用javascript编写的)。 当我在这个文本框中输入一个数字并点击sumbit / next按钮时,它应该将这些信息保存在数据库中。 逻辑适用于一个选项,但它不适用于另一个选项! 这两个选项都有文本框与它们相关联,只有在选择了相应选项时才可见。 前端逻辑工作(即可见性),但是当我输入'txt_HFMN'的数字时(此文本框的选项出现) 在下拉列表中,文本框'txt_HFNumber'为'CHF'和'CMC')
以下是.cs文件中的代码:
if (txt_HFNumber != null)
{
strHFNUM = txt_HFNumber.Text;
}
else if (txt_HFMN != null)
{
strHFNUM = txt_HFMN.Text;
}
else
{
strHFNUM = string.Empty;
}
我尝试调试它,以确定错误。上述条件仅检查'txt_HFNumber',它从不 检查'else if'部分。即使我在'txt_HFMN'中输入了一个值,它也会检查'txt_HFNumber',因为 前端不存在'txt_HFNumber'/此文本框中没有输入任何值,它会在其中插入'null' 数据库而不是'txt_HFMN'输入值!
指教。
非常感谢您的帮助。
答案 0 :(得分:1)
我想你可能想要更像这样的东西,你要检查文本框本身是否存在:
if (!string.IsNullOrEmpty(txt_HFNumber.Text) )
{ strHFNUM = txt_HFNumber.Text; }
...
答案 1 :(得分:0)
if (txt_HFNumber != null) {
strHFNUM = txt_HFNumber.Text;
} else {
strHFNUM = string.Empty;
}
if (txt_HFMN != null) {
strHFNUM = txt_HFMN.Text;
} else {
strHFNUM = string.Empty;
}
如果你设置txt_HFNumber和txt_HFNumber,你将永远不会到你的语句中的txt_HFNumber,分开2,但是你的设置是相同的字符串两次,strHFNUM被过度骑行所以如果你这两个都设置了只有txt_HFMN将设置为strHFNUM
或者你可以做到
if (txt_HFNumber != null && xt_HFMN == null) {
strHFNUM = txt_HFNumber.Text;
} else {
strHFNUM = txt_HFMN.Text; //IF xt_HFMN is NULL it will set to null thus setting the empty string is irrelevent
}