0

각 행에 회사의 직원에 대한 정보가있는 DataGrid가 있습니다. 각 행에 추가 정보 표시/숨기기 기능을 허용하고 싶습니다. 이것은 아주 잘 작동ASP.NET Datagrid 행의 섹션 표시/숨기기

<ajaxtoolkit:collapsiblepanelextender 
    TargetControlID="panel2"> 
    ExpandControlID="LinkButton1" 
    CollapseControlID="LinkButton1"> 
</ajaxtoolkit:collapsiblepanelextender> 

<asp:panel> 
    FirstName | LastName | Phone | Email 
    <LinkButton1> <- this hides/show extra info in panel2 
</asp:panel> 

<asp:panel2> 
    <textbox ="FirstName"> 
    <textbox ="LastName"> 
    <textbox ="EmailName"> 
    ... 
    ...lots of textboxes where information is assigned from the database. 
</asp:panel2> 

하지만 계산 비용이 많이들 수 있습니다 : 내 첫번째 생각은 AJAX 툴킷에서 CollapsiblePanelExtender를 사용하여 이와 같은 각 행이 있었다. 추가 정보 패널에는 많은 텍스트 상자/레이블이 있으며이 레이블은 모두 데이터베이스에서 해당 값을 가져옵니다. 페이지가 시작될 때 데이터베이스에서 가져온 모든 데이터가로드 될 때마다 일부 데이터가 숨겨집니다.

내 목표를 달성하기위한 더 좋은 방법이 있습니까? 또는 Show/Hide 버튼을 클릭했을 때 직원에게 추가 세부 사항을로드하는 방법이 있습니까?

미리 감사드립니다.

답변

1

저는 ModalPopupExtender를 사용하여이 작업을 수행했습니다. 나는 사용자가 imagebutton을 밀 때만 정보를 검색하는 텍스트 상자와 레이블이있는 패널이 있습니다. 이 예제에서 ImageButton은 GridViewRow에 있었고 데이터 검색 키는 Row의 DataKeys 속성에있었습니다.

GridViewRow row = ((GridViewRow)((ImageButton)sender).NamingContainer); 
//NamingContainer return the container that the control sits in 
DataKey key = ((GridView)row.NamingContainer).DataKeys[row.RowIndex]; 

//Retrieve data with a server method. It can be with wathever you want, I use an ArrayList 
ArrayList AL=Domain.GetCustomerData(key[0].ToString()); 

//Fill controls with data, 
LblDate.Text = AL[0].ToString(); 
dLectHidro.Value = AL[1].ToString(); 
idLectHL.Value = AL[2].ToString(); 
LblEstacion.Text = HttpUtility.HtmlDecode(AL[3].ToString()); 
TxtLluvia.Text = HttpUtility.HtmlDecode(AL[4].ToString()); 
TxtLluvia1.Text = HttpUtility.HtmlDecode(AL[5].ToString()); 

//Show the popup 
this.ModalPopupModif.Show(); 

희망이 도움이됩니다. 클라우디아

+0

감사 클라우디아, 귀하의 방법은 목표를 완료 쉽고 propably 더 나은 방법입니다. 하지만 팝업 등이없는 곳에서 편집 /보기를 할 수 있기를 바랬습니다. 각 행의 패널을 표시/숨기기 위해 템플릿을 사용했지만 작동하지만 매우 까다 롭습니다. 다른 사람들이 더 좋은 생각을 갖고 있습니까? 아니면 모달 팝업의 경로를 따라가는 것이 나을까요? –

+0

결국 ModalPopupExtender와 함께 갔는데, 훨씬 쉬워졌고 더 많이 제어 할 수 있습니다. 클라우디아에게 제안 해 주셔서 감사합니다. –

+0

당신을 환영합니다. 도와 줄 수있어서 기뻐. – Claudia

관련 문제