【问题标题】:How to convert from a Label to a string using FindControl?如何使用 FindControl 将标签转换为字符串?
【发布时间】:2014-01-29 05:07:43
【问题描述】:

我正在尝试将此标签转换为字符串,但它似乎为空。这是错误消息: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>

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

【问题讨论】:

  • 你确定item.FindControl 不返回null吗?
  • @Selman22 是的,它返回 null 但在屏幕上我看到的是 DentistName
  • @user3127986:是的,但是您正在寻找 ID 为“Dentist.Dentist_Name”的控件 - 查看您真正想要的控件的 ID...

标签: c# asp.net


【解决方案1】:

您必须使用 Label 控件的 ID。

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

【讨论】:

    【解决方案2】:

    应该是这样的:

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

    【讨论】:

      【解决方案3】:

      Page.FindControl方法以元素id为参数,见documentation:

      所以你需要传递它元素id,即dentistNameLabel。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-13
        • 1970-01-01
        • 2023-04-09
        • 2022-11-18
        • 2013-08-14
        • 2021-11-07
        • 2014-05-25
        • 2011-03-21
        相关资源
        最近更新 更多