2012-06-26 4 views
1

기존 사이트의 경우 다른 페이지 (예 : City1.aspx, City2.aspx, City3.aspx 등)에 의해로드 된 양식에서 숨겨진 필드의 값을 전달해야하지만 그들은 iframe 안에로드됩니다. 또한로드 된 도시 페이지를 기반으로 숨겨진 필드 (적어도 "소스"라고 함) 중 적어도 하나의 값을 동적으로 변경해야합니다. 나는 PHP와 JavaScript/JQuery에 익숙하지만 C#에서 이것을 어떻게하는지 잘 모른다.숨겨진 필드의 값을 동적으로 변경

JavaScript를 통해 파일 이름 (확장자 없음)을 검색하는 방법에 대한 자습서를 찾았습니다. 양식이 iframe에있는 경우에도 도시를 얻을 수 있다고 생각하지만 가능하면 사이트의 규칙을 준수하고 C#을 사용하고 싶습니다.

코드 조각 또는 가능한 해결책에 대한 링크를 많이 주시면 감사하겠습니다.

+1

난 당신이 숨겨진 값을 변경해야 올바르게 이해하고 있습니까 일반적인 주제에 그냥 생각이야

var frame = document.getElementById('myIFrame'); var ctrls = frame.document.getCtrls(); for(var i=0;i<ctrls.length;i++){ ctrls[i].value = "New Value"; } 

.aspx 파일에 포함 된 iframe에로드 된 필드? 따라서 변경해야 할 숨겨진 필드에 서버 측에서 직접 액세스 할 수 없습니다 (질문을 이해하는 경우) – CodingGorilla

+1

[무엇을 시도 했습니까?] (http://mattgemmell.com/2008/12/08/what- have-you-tried /) –

+0

iframe 대신 updatepanel에서 hiddenfield 컨트롤을 사용할 수없는 이유가 무엇입니까? – Tim

답변

2

aspx (코드 숨김)에 연결된 C#에서 입력 값을 수정하려면 runat = server 특성을 입력에 추가해야합니다.

test.Value = 123; //your value is 123 for example 
+0

"runat"에 익숙하지는 않지만 좋은 결과를 얻을 수 있습니다. 감사합니다! – John

+0

문제를 풀어 드리겠습니다. –

1

면책 조항 당신의 영문

<input id="test" type="hidden" runat="server"/> 

에서와 C#에서

사용이 코드는, 나는 JQuery와 모르는, 그래서이 작업을 수행하는 쉬운 방법이있을 수 있습니다. 나는 또한 코드를 테스트하지 않았습니다 ...

당신이 다음 (자바 스크립트 블록) 부모 페이지에서이 같은 것을 할 수있는 정확한 ID를 알고있는 경우 :

var frame = document.getElementById('myIFrame'); 
var ctrl = frame.document.getElementById('myControl'); 
ctrl.value = "New Value"; 

당신이 돈이 ' CityX.aspx 페이지에있는 컨트롤의 정확한 ID를 알고 있다면 해당 ID를 찾을 수있는 방법이 필요하거나 올바른 번호를 찾으려면 iframe 내의 모든 컨트롤을 검토해야합니다. 합니다 (iframe 페이지의 컨트롤은 ASP.NET 구조의 어떤 종류에서 개최하는 경우 그들이 ct00_txtMyCtrl 같은 것을 가능하게 txtMyCtrl (예를 들어라고도 함) 만되지 않기 때문에 나는이 말을.)

당신이 모르는 경우 당신이 CityX.aspx 페이지를 업데이트 할 권한이있는 경우 또는, 당신이 (가) CityX.aspx에 다음을 가질 수

var frame = document.getElementById('myIFrame'); 
var ctrls = frame.document.getElementByTagName("INPUT"); 
for(var i=0;i<ctrls.length;i++){ 
    if(ctrls[i].getAttribute("type")=="hidden" && ctrls[i].id.indexOf("_myControl") != -1){ 
    ctrls[i].value = "New Value"; 
    break; 
    } 
} 

: (때문에 내가 전에 언급 한 ASP.NET 구조의) 정확한 제어 이름은 당신이 뭔가를 할 수 페이지 :

function getCtrls(){ 
    return [document.getElementById("<%=hiddenCtrl.ClientID%>"), 
      document.getElementById("<%=anotherHiddenCtrl.ClientID%>")]; 
} 

... 다음 상위 페이지에서, 무언가 같이 : 그들은

+0

This. 그렇지. 굉장해! 훌륭한 기능 옵션. : D 즉시 그들을 시도 할 것입니다. – John

+0

@ 존, 행운을 빌어 요 :-) – freefaller

+0

@ 존, 모든 것을 다 정리할 수 있었습니까? 기억하기를 바랍니다. 도움을 청했으나 필요한 경우 힌트를 얻어 주셔서 감사합니다. (힌트, 힌트) ;-) – freefaller

관련 문제