我有这段代码:
int CityID= ((User)Session["LoggedInUser"]).CityID;
//When I debugg I get CityID = 7 here
ddlCity.Items.FindByValue(CityID).Selected = true;
在底线我无法从int转换为字符串的错误。我怎样才能使它成为可能?
答案 0 :(得分:1)
FindByValue需要一个字符串值,因此您必须将CityID转换为字符串。
试试这个:
ddlCity.Items.FindByValue(CityID.ToString()).Selected = true
答案 1 :(得分:1)
参数类型应该是string
,而不是int
,所以只需使用内置的ToString():
ddlCity.Items.FindByValue(CityID.ToString()).Selected = true;
MSDN:ListItemCollection.FindByValue()方法
public ListItem FindByValue(
string value
)
答案 2 :(得分:0)
看起来FindByValue采用“String”。使用CityId.ToString(CutureInfo.InvariantCulture)
代替CityId
。
答案 3 :(得分:0)
您需要将整数转换为字符串。这可以通过两种方式之一完成
调用ToString()方法
ddlCity.Items.FindByValue(CityID.ToString()).Selected = true;
如果CityID为null,则可能引发空引用异常。
使用ConvertToString()
ddlCity.Items.FindByValue(Convert.ToString(CityID)).Selected = true;
同样明智的做法是检查FindByValue方法是否返回null,因为当您尝试设置Selected = true时,这也会导致空引用异常