0

私はこのASP.NETのものに不慣れです。私のページには、FooterTemplateを含むデータリストがあります。フッターには、QueryStringに応じて表示されるいくつかのパネルがあります。私が抱えている問題は、Visibleプロパティを変更するためにPage_Loadでこれらのパネルを見つけようとしていることです。Page_Loadでこのコントロールを見つける方法はありますか?たとえば、これはaspxページの一部です。

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
 <asp:DataList ID="dlRecords" runat="server">
  <FooterTemplate>
   <asp:Panel ID="pnlArticleHeader" runat="server" Visible="false" >
   </asp:Panel>
  </FooterTemplate>
 </asp:Datalist>
</asp:Content>

コードビハインドには次のようなものがあります。

protected void Page_Load(object sender, EventArgs e)
    {
        location = Request.QueryString["location"];
        if (location == "HERE")
        {
          Panel pnlAH = *Need to find control here*;
          pnlAH.Visible=true;
         }
      }

私が言ったように、私はこれで新しいです。私が見つけたものはすべてうまくいかないようですので、特定の質問を投稿することにしました。前もって感謝します

4

1 に答える 1

0

DataListにはイベントOnItemCreatedがあり、オーバーライドすると、行のタイプを選択できます。

  Panel _pnlArticleHeader;
  void Item_Created(Object sender, DataListItemEventArgs e)
  {

     if (e.Item.ItemType == ListItemType.Footer)
     {

        _pnlArticleHeader =(Panel)e.Item.FindControl("pnlArticleHeader");
      }

  }

フィールドでのイベント呼び出し後:_pnlArticleHeader目的のパネルが表示されます。この方法は一度だけ作成されるので安全です。ノート!一般的なDataListの行の場合と同じように、最後の1つだけが返されます。

于 2010-05-25T15:07:09.187 に答える