저는이 ASP.NET 항목을 처음 사용합니다. 내 페이지에는 FooterTemplate이있는 Datalist가 있습니다. 꼬리말에는 QueryString에 따라 표시 될 몇 개의 패널이 있습니다. 문제는 Visible 속성을 변경하기 위해 Page_Load에서 이러한 패널을 찾으려고하는 것입니다. Page_Load에서이 컨트롤을 찾는 방법이 있습니까? 코드 숨김에서ASP.NET Panel FindControl 내 DataList 내에서 속성을 변경하려면 C#
<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;
}
}
. 내가 찾은 모든 것이 효과가없는 것 같아 특정 질문을 게시하기로 결정했습니다.
Panel _pnlArticleHeader;
void Item_Created(Object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Footer)
{
_pnlArticleHeader =(Panel)e.Item.FindControl("pnlArticleHeader");
}
}
분야에서 이벤트 호출 후 : 당신이 패널을 원하는 얻을 것이다 _pnlArticleHeader 사전 DataList에 이벤트가 OnItemCreated있다
이것은 내가 처음으로 얻은 것입니다. 감사. 지금 가지고있는 유일한 문제는 코드에서 어떻게 사용하는지입니다. 예를 들어 Page_Load에서 QueryString 위치를 얻습니다. 값에 따라 다른 코드 블록이 있습니다. 별도의 OnItemCreated 코드 블록 대신이 코드를이 코드 안에 넣고 싶습니다. 어떻게해야할까요? – SDC
어쩌면 나는 데이터리스트가 어떻게/언제 만들어 졌는지 이해하지 못할 수도있다. 어쩌면 나는 이것이 어떻게 작동하는지에 대한 나의 무지를 보여주고있을 뿐이다. OnItemCreated 외부에서 가져올 수 있습니까? – SDC
@SDC이 작업을 수행하려면이 처리기 'Item_Created'를 Page_Load가있는 동일한 파일에 배치하십시오. 이 이벤트는 Page_load 전에 실행되므로 변수 _pnlArticleHeader가 할당됩니다. 제어를위한 aspx 파일에서 이벤트 처리기를 선언해야합니다 :
Dewfy