2010-08-16 4 views
1

내 ASP.NET 메인 페이지에는 숨겨진 필드 하나와 버튼 하나가 있습니다. 사용자가 버튼을 클릭하면 팝업 (자식 페이지)이 표시됩니다. 팝업이로드되는 동안 숨겨진 필드에 액세스해야합니다. C#을 사용하여 숨겨진 필드에 어떻게 액세스 할 수 있습니까?자식 페이지에서 부모 페이지의 숨겨진 필드에 액세스하는 방법

+0

이 우리에게 컨텍스트를 제공하십시오 : 데이터 목록은 다음과 같이해야한다

void PopupButton_Onclick(object sender, EventArgs e) { string IDs = CollectTheSelectedIDsInTheGridView(); Session["IDs"] = IDs; string js = @"<script type='text/javascript'> window.open('Child.aspx'); </script>"; Page.ClientScript.RegisterStartupScript(this.GetType(),"showChild",js); } 

편집 :

<asp:button id="PopupButton" runat="server" Text="Click to pop up" /> 

처럼, 버튼의 서버 이벤트를 추가 윈도우 폼을 , ASP.NET, MVC, WPF, Silverlight? –

답변

2

음, 숨겨진 필드의 값을 팝업의 쿼리 문자열에 전달할 수 있습니다. 이런 식으로 뭔가 :

<asp:button id="ButtonInMainPage" runat="server" onclick="Popup();return false;" /> 
<asp:hidden id="hiddenValue" runat="server" /> 
<script type="text/javascript"> 
    function Popup() 
    { 
     window.open('Child.aspx?hiddenValue='+document.getElementById('<%=hiddenValue.ClientID%>').value); 
    } 

아이를 Page_Load에서 : 내가 보여줄 것은 간단한 코드가

string hiddenValue = Request.QueryString["hiddenValue"]; 

, 프로젝트에 따라 필요한 검사 등을 추가해야합니다. 메인 페이지에서

, 체크 박스의 열을 포함하는있는 gridview는, 행의 체크 박스가 숨겨진 필드에 해당 ID를 추가, 선택되었을 때,이 :

+0

숨겨진 필드에 값을 너무 길게 저장하고 있습니다. 쿼리 문자열을 사용할 수 없습니다. – Hukam

+0

쿼리 문자열 최대 값을 종료 할 수 있습니다. 숨겨진 필드로갑니다. – Hukam

+1

그럼'Session [ "hidden"] = XXXX;에 보관할 수 있습니다 –

0

이 당신의 질문이다. 사용자가 팝업 버튼을 클릭하면 창이 열리고 선택한 ID가 새 창으로 전달됩니다. 질문은 ID가 너무 길어 쿼리 문자열에 전달할 수 없다는 것입니다.

내 솔루션 :

난 당신이 숨겨진 필드를 제거하고 팝업 버튼의 모든 클라이언트 스크립트를 제거 할 수 있다고 생각합니다.

<table> 
<asp:Repeater ID="myData" runat="server"> 
    <ItemTemplate> 
    <tr> 
     <td><asp:CheckBox ID="selectedFlag" runat="server" Checked=<%# Eval("Checked") %> /></td> 
     <td><asp:Label ID="dataText" runat="server" Text=<%# Eval("TextData") %>></asp:Label></td> 
    </tr> 
    </ItemTemplate> 
</asp:Repeater> 
</table> 
+0

대니 첸 대단히 감사합니다. 제게 많은 도움이됩니다. :) – Hukam

+0

어떻게 서버 측에서 SelectedRowsID 값을 얻을 수 있습니까? 자바 스크립트 변수. – Hukam

+0

왜 HTML 컨트롤인가? 데이터를 체크 박스에 바인딩해야하기 때문에 서버 컨트롤을 사용해야합니다. 내 편집을 참조하십시오. –

관련 문제