2013-07-14 58 views
1

我有FormView控件并绑定到CommandArgument记录楼盘序号:演员对象INT不起作用

CommandArguman='<%# Eval("Id") %>' 

但在ItemCommand处理程序服务器端,这并不工作:

int id = e.CommandArgument; 

,并得到错误:

Specified cast is not valid.

但这项工作:

int id = int.Parse(e.CommandArgument.ToString()); 

e.CommandArgument的返回类型为对象,但为什么我不能投的对象为int?

+0

@LiranElisha ok – Mohammadreza

回答

1

您无法投射并且objectint没有特定投射,例如(int)e.CommandArgument,您无法这样做,因为该对象是字符串。

你可以做

int id = int.Parse((string)e.CommandArgument); 

如果e.CommandArgumentstring,但你将不利于它了,然后你的代码

其实我会离开你的代码,因为它是,因为它赢得了”如果对象为空或不是字符串,则抛出。你也可以使用安全词as作为演员,但你也不会从中受益。

进一步学习搜索“铸造”或读取here