如何使用FindControl从Label转换为字符串?

时间:2014-01-28 20:59:19

标签: c# asp.net

我正在尝试将此Label转换为字符串,但它似乎为null。以下是错误消息:App_Web_2zs3gdg3.dll中发生了'System.NullReferenceException'类型的异常,但未在用户代码中处理 附加信息:对象引用未设置为对象的实例。

Label myDentistName = (Label)item.FindControl("Dentist.Dentist_Name");
sDentistName = myDentistName.Text;
Session["DentistName"] = sDentistName; 

这就是它在.aspx

中的定义方式
<td>
   <asp:Label ID="dentistNameLabel" runat="server" 
        Text='<%# Eval("Dentist.Dentist_Name") %>' />
</td>

牙医名称正确显示在屏幕上。

3 个答案:

答案 0 :(得分:4)

您必须使用Label控件的ID。

Label myDentistName = (Label)item.FindControl("dentistNameLabel");

答案 1 :(得分:1)

需要这样:

Label myDentistName = (Label)item.FindControl("dentistNameLabel");

答案 2 :(得分:1)

Page.FindControl方法将元素id作为参数,请参阅documentation

所以你需要传递id的元素dentistNameLabel

Label myDentistName = (Label)item.FindControl("dentistNameLabel");