2009-03-10 2 views
7

마스터 페이지에서 기본 ASP.NET 양식의 동작 특성을 동적으로 수정하려고합니다.마스터 페이지에서 aspnetForm의 동작 특성을 동적으로 변경하는 방법

페이지에 라디오 버튼이 있습니다. 사용자가 옵션 중 하나를 선택하고 다시 게시 할 때 양식의 작업 속성을 설정해야하며 양식을 자동으로 다시 제출해야합니다.

우리는 동일한 용도로 JavaScript를 사용하려고했습니다.

document.forms[0].action = "option1.aspx"; 
document.forms[0].submit(); 

하지만 작동하지 않는 것 같습니다. 작업 속성에 영향을주지 않습니다.

우리는 마스터 페이지를 사용하지 않는 경우

이, 우리는 마스터 페이지를 제거하지 못할

this.Form.Action = "option1.aspx"; 
ClientScript.RegisterStartupScript(this.GetType(),"test1", 
    "document.form[0].submit();",true); 

슬프게도 사용하여 쉽게 달성 할 수있다 ..이 달성 할 수있는 방법에 대한 포인터 ..?

답변

5

이것은 그들이하지 않았 으면 좋겠다고 읽은 것입니다. Form 태그는 action 속성을 하드 코딩합니다. 런타임시 구성을 제어하려면 제어 어댑터를 사용해야합니다. 특히 URL 재 작성을 위해 포스트 백 URL을 작성한 재 작성된 URL로 요구할 때 사용합니다. 스콧 구가의 코드를 만들어 여기에서 찾을 수 있습니다 :

http://www.scottgu.com/blogposts/urlrewrite/UrlRewrite_HttpModule1.zip

그리고 글의 주소 :

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

+0

니스. 정확히 내가 필요로하는 것. +1 – Neil

+0

+1 도움이됩니다. 이를 바탕으로 서버 기반 양식을 버리고 고전 HTML을 만들었습니다. – JDB

0

양식이 결과에 값을 전달해야 하는가를 페이지? 그렇지 않다면 Response.Redirect를 올바른 페이지에 사용하지 않는 것이 어떻습니까? 당신은 왜 당신도 모두 다시 게시물을 유발하는 값을 전달해야하는 경우

protected void btnSubmit_Click(object sender, EventArgs ags) { 
     switch (lstOptions.SelectedValue) { 
      case "option1": 
       Response.Redirect("~/option1.apsx"); 
       break; 
      //etc 
     } 
} 

예를 들어, 당신은 RadioButtonList가 lstOptions라고 사용하는 추정? 그것은 당신이 자바 스크립트를 사용하여 원하는 것을 성취 할 수있는 것처럼 들립니다. 양식을 추정 예를 들어의 이름은 Form1에와 라디오 버튼 옵션의 이름이 :

<input type="submit" value="Submit" onclick="javascript:submitForm()" /> 

<script type="text/javascript"> 
    function submitForm() { 
     for (var i=0; i < document.form1.options.length; i++) { 
     if (document.form1.options[i].checked) { 
      document.forms[0].action = "option" + i + ".aspx"; 
      document.forms[0].submit(); 
     } 
     } 
    } 
</script> 
+0

예이 페이지에서 값을 가져올 필요가 있습니다. 따라서 리디렉션 할 수 없습니다. 옵션 2를 사용해 보았지만 그 방법도 작동하지 않았습니다. 또한 액션 이벤트에 대한 페이지의 이름도 실제로 생성됩니다 런타임에만 .. 그래서 그 똑바로 .. 도움을 주셔서 감사합니다 .. :) –

관련 문제