我有一个Cust_Result类,它接受一个整数参数。
所以在我的主页上加载时我绑定一个formview来显示我检索到的数据。现在我想提取我的“id”标签的值并将其分配给一个变量,我可以传递给我的Cust_Result类,但我一直收到这个错误
“无法将'System.Web.UI.WebControls.Label'类型的对象强制转换为 输入'System.IConvertible'。“
我假设这是因为我正在尝试将字符串值发送到需要整数值的参数,但我不确定如何进行转换。
我的代码
int cust;
cust = (Convert.ToInt32(FormView1.Row.FindControl("ID")));
答案 0 :(得分:1)
您需要转换字符串,这是Label.Text
属性(而不仅仅是标签)。
我会把它分成两步:
Label lbl = FormView1.Row.FindControl("ID") as Label;
// option to bail out when lbl == null
cust = Convert.ToInt32(lbl.Text);
答案 1 :(得分:1)
首先将控件转换为Label
var label = (Label)FormView1.Row.FindControl("ID");
然后您可以获得标签中的值:
var cust = int.Parse(label.Text);
答案 2 :(得分:1)
仔细查看编译器错误 - 它没有说明string
和int
- 它正在谈论IConvertible
和Label
- 尽管它提到的事实Label
代替Control
表示不是您实际发布的代码。 Convert.ToInt32
无法理解如何处理Control
或Label
- 在这种情况下,我相信您需要标签的文字,所以我写这个:
Label label = (Label) FormView1.Row.FindControl("ID");
// Potentially check for "label" being null here, i.e. the control wasn't found
int cust = Convert.ToInt32(label.Text);
这个值的来源并不完全清楚,但您可能也想考虑使用int.TryParse
代替Convert.ToInt32
。
我还注意到Cust_Result
是一个非传统的名字 - 试着:
CustomerResult
并未真正解释的结果 。