0

我将数据列表作为问题的标签,将文本区域作为答案,因为数据列表在标签上呈现问题,并且用户将在文本区域中添加答案作为插入数据库中的答案。我做了我的代码,但是当我添加我的代码以查找控件(标签、文本区域)时,尽管我为问题添加了答案,但它们返回了 null 值。

protected void BT_submit_Click(object sender, ImageClickEventArgs e)
{

    Label QID = (Label)Dl_Question.FindControl("lbl_QID");
    HtmlTextArea QAnswer = (HtmlTextArea)Dl_Question.FindControl("Txt_Answer");
}

数据列表代码:

<asp:DataList ID="Dl_Question" runat="server" onitemdatabound="Dl_Question_ItemDataBound"                                                                          onitemcommand="Dl_Question_ItemCommand">
   <ItemTemplate>
      <asp:Label ID="lbl_QID" runat="server" Text='<%# Eval("ID") %>' Visible="false">
      </asp:Label><br />
      <asp:Label ID="Lbl_Question" runat="server" Text='<%# Eval("Question") %>'></asp:Label>  <br />
      <textarea id="Txt_Answer" cols="80" rows="5" runat="server"></textarea>
   </ItemTemplate>
</asp:DataList>
4

2 回答 2

2

我会假设你正在寻找比你想象的更高的水平。你可能需要这样的东西:

Label QID = Dl_Question.**Items[n]**.FindControl("lbl_QID") as Label;
于 2012-12-12T19:02:10.520 回答
0

如果您不想费心指定控制继承人 achy 使用递归算法

于 2012-12-12T19:13:47.043 回答