Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET面板在DataList中查找控件以更改属性C#_C#_Asp.net_Datalist_Findcontrol - Fatal编程技术网

ASP.NET面板在DataList中查找控件以更改属性C#

ASP.NET面板在DataList中查找控件以更改属性C#,c#,asp.net,datalist,findcontrol,C#,Asp.net,Datalist,Findcontrol,我不熟悉ASP.NET的东西。在我的页面中,我有一个带有页脚模板的数据列表。在页脚中,我有两个面板,根据查询字符串的不同,这些面板是可见的。我遇到的问题是试图在Page_Load上找到这些面板以更改Visible属性。有没有办法在页面加载中找到此控件?例如,这是aspx页面的一部分: <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <asp:DataLi

我不熟悉ASP.NET的东西。在我的页面中,我有一个带有页脚模板的数据列表。在页脚中,我有两个面板,根据查询字符串的不同,这些面板是可见的。我遇到的问题是试图在Page_Load上找到这些面板以更改Visible属性。有没有办法在页面加载中找到此控件?例如,这是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>

就像我说的我是新手。我发现的一切似乎都不起作用,所以我决定发布一个具体的问题。提前感谢

数据列表已创建事件,覆盖允许选择行的类型:

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

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

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

  }

在以下字段中调用事件后:_pnlArticleHeader您将获得所需的面板。这种方法是安全的,因为只创建了一次。笔记对common DataList的行使用相同的方法只返回最后一行。

这是我第一次使用它。谢谢我现在唯一的问题是如何在代码中使用它。例如,在页面加载中,我得到查询字符串位置。根据值的不同,我有不同的代码块。我想把这段代码放在那段代码中,而不是单独创建的代码块。我该如何做到这一点?也许我只是不知道如何/何时构建数据列表。也许我只是在表明我对这是怎么回事一无所知。是否可以将其置于OnItemCreated之外?@SDC若要完成此操作,请将此处理程序“Item_Created”放入页面加载所在的同一文件中。此事件将在页面加载之前执行,因此将分配变量_pnlArticleHeader。在控件的aspx文件中,需要声明事件处理程序:
  Panel _pnlArticleHeader;
  void Item_Created(Object sender, DataListItemEventArgs e)
  {

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

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

  }