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");
}

DataList コード:

<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

コントロールの相続人をわざわざ指定したくない場合は、再帰アルゴリズムを使用してください。

于 2012-12-12T19:13:47.043 に答える