请帮帮我。
int index = Convert.ToInt32(e.CommandArgument.ToString());
这对我不起作用。它显示异常为“输入字符串格式不正确”。
e.CommandArgument
不为空,我正在为此获得价值。
答案 0 :(得分:2)
您应该更改以下代码
int index;
bool bIsConverted = int.TryParse(e.CommandArgument.ToString(), out index);
答案 1 :(得分:0)
documentation声明了以下Convert.ToInt32
:
将指定的数字字符串表示形式转换为 等效的32位有符号整数。
因此,虽然e.CommandArgument
不是null
,但这并不意味着它可以转换为数字。您需要检查e.CommandArgument
是否包含1,20,42等值。
如果e.CommandArgument可以是数字或其他内容,您可以使用int.TryParse。这将返回一个布尔值,表示转换成功。解析失败时不会抛出异常。
答案 2 :(得分:0)
检查空格
int index = Convert.ToInt32(e.CommandArgument.ToString().Trim());
如果e.CommandArgument
值无效,请检查empty
。