如何解决ASP:对象引用未设置为对象的实例
| 我正在尝试将值从数据源传递给标签,但它一直在给我这个错误。 form1.aspx: <asp:FormView ID=\"ProductsView\" DataSourceID=\"ProductDataSource\" DataKeyNames=\"Parking_ID\"
runat=\"server\" >
<ItemTemplate>
<div style=\"width: 200px; height: 200px; border: solid 10px white; background-position: center;
background-repeat: no-repeat; background-image: url(\'<%# Eval(\"Parking_ID\",\"images/{0}.bmp\") %>\');\">
</div>
<asp:HiddenField Value=\'<%# Eval(\"Parking_Cost\") %>\' ID=\"hiddenPrice\" runat=\"server\" />
<asp:HiddenField Value=\'<%# Eval(\"Parking_Name\") %>\' ID=\"hiddenName\" runat=\"server\" />
<asp:HiddenField Value=\'<%# Eval(\"Parking_ID\") %>\' ID=\"HiddenField1\" runat=\"server\" />
</ItemTemplate>
</asp:FormView>
<asp:Label ID=\"lblName\" runat=\"server\" Text=\"TEST\" CssClass=\"title\" Style=\"font-size: 17px;
display: block;\"></asp:Label>
<asp:Label ID=\"lblPrice\" runat=\"server\" Text=\"TEST\" CssClass=\"title\" Style=\"color: Red;
font-size: 12px;\"></asp:Label>
<asp:Label ID=\"lbl_ID\" runat=\"server\" Text=\"\" CssClass=\"title\" Style=\"color: Red;
font-size: 12px;\"></asp:Label>
<asp:SqlDataSource ID=\"ProductDataSource\" runat=\"server\" ConnectionString=\"<%$ ConnectionStrings:mydatabaseConnectionString2 %>\"
ProviderName=\"System.Data.SqlClient\" SelectCommand=\"SELECT * FROM [Parking] WHERE ([Parking_ID] = @Parking_ID)\">
<SelectParameters>
<asp:Parameter Name=\"Parking_ID\" Type=\"Int32\" />
</SelectParameters>
</asp:SqlDataSource>
form1.aspx.vb:
lblName.Text = DirectCast(Me.ProductsView.FindControl(\"hiddenName\"),HiddenField).Value
我正在使用vb.net脚本
有任何想法吗 ?
问候。
解决方法
控件通常位于FormView的数据行中。
尝试
lblName.Text = DirectCast(Me.ProductsView.Row.FindControl(\"hiddenName\"),HiddenField).Value
但是一般来说,当您使用Control.FindControl()
时,如果找不到find3ѭ,有机会返回Nothing
。所以最好的办法是做一个ѭ5而不是DirectCast
,并检查它是否是Nothing
。
,我猜错误源是以下语句:
Me.ProductsView.FindControl(\"hiddenName\")
原因是您在ProductsView
控件中没有Control
,而ѭ11的ID
。
您可能需要使用递归函数来获取控件。
,此代码是否在bind事件中?
lblName.Text = DirectCast(Me.ProductsView.FindControl(\"hiddenName\"),HiddenField).Value
如果是这样,可能是您必须检查它正在运行哪个模板:
if (e.Item.ItemType == ItemType || e.Item.ItemType == AlternateItemType)
(我不确定FormView
的类型,但在GridView
中会是这样。
控件.17ѭ在其他模板上不存在。
另外,您还必须从e.Item
中找到当前模板的控件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。