2012-04-04 4 views
3

내 C#/asp.net 앱에서 기능을 구현하는 데 문제가 있습니다.코드 뒤에서 양식을 제출하십시오

RadioButtonList 및 제출 버튼이있는 양식이 있습니다. RadioButtonList는 데이터베이스에서 검색 한 객체 목록에서 Page_Load()에 생성됩니다. 목록에 개체가 하나만있는 경우 양식을 자동으로 제출하고 싶습니다.

내 양식 객체, 제출 버튼 등 ...에 액세스 할 수 있지만 결국 해결책을 찾을 수없는 것 같습니다 (종류는 form.Submit()입니다).

누구든지 내가 어떻게 할 수 있을지 생각하고 있습니까?

미리 감사드립니다. 어떤 방식이 없다 보인다으로 http://pastebin.com/54payZJP

EDIT2 >>>

:

에서 .aspx : http://pastebin.com/0E6T7dqH

.aspx.cs

편집 >> 여기에 코드입니다 처음에는 무엇을하고 싶은지, response.redirect()를 사용하여 세션 변수를 사용했다.

출처 : http://dotnetslackers.com/Community/blogs/haissam/archive/2007/11/26/ways-to-pass-data-between-webforms.aspx

+0

시도한 것을 게시하십시오. –

+0

주어진 양식을 제출하고 존재하지 않는 방법을 찾으려고했습니다. 그런 다음 버튼을 시뮬레이션 할 수 있는지 알아보기 위해 노력했습니다. 클릭, 존재하지 않는 것 같습니다. 또한 response.write ()를 사용하여 자바 스크립트로 양식을 제출하려했으나 어쩌면 가능할 수도 있지만 매우 "예쁜"해결책은 아닙니다. 결국 유일한 방법은 양식이 연결되는 페이지에 내 게시물 데이터를 직접 보내는 것처럼 보이지만 바주카포로 개미를 죽이는 것 같은 느낌이 듭니다. (다른 페이지로 POST 데이터를 보내면 * ss의 고통이되는 것 같습니다. 잘) – BPruvost

답변

1

에서이

같은 것을보십시오. 당신이 그것을 할 수있는 방법이 있습니다.

Asp.Net 버튼에는 PostBackUrl이라는 속성이 있으며 버튼을 클릭하면 양식이 게시 될 위치를 제어합니다.

RegisterStartupScript 함수를 사용하여 페이지에서 javascript를 렌더링 할 수도 있습니다.

이제 두 가지 요소를 통해 목표를 달성 할 수 있습니다.

if(!IsPostBack) 
{ 
    if(results == 1) 
    { 
     button.PostBackUrl = "next page's url" 
     //Register script to click the button using RegisterStartupScript 
    } 
} 

이제 이것을 보여 주면서 최상의 사용 환경을 보장하지 못할 수도 있습니다. 내가 그랬을 때 다른 해결책이 없었던 아주 특별한 경우였습니다.페이지는 실제로 사용자에게 다시 게시되며 버튼을 클릭하는 자바 스크립트가 적용되기 전에 잠시 동안 페이지가 표시됩니다. 또한 버튼의 PostBackUrl을 설정하면 클릭하면 전체 양식이 지정된 페이지에 게시됩니다. 현재 페이지의 코드는 전혀 실행되지 않으므로 유효성 검사가 있으면 실행되지 않습니다.

사용자가 하나의 선택 만 할 수있는 경우에도 버튼을 클릭하여 양식을 제출하게하는 것은 아무 문제가 없습니다. 내 경험상 사용자는 시스템을 제어 할 수있는 것처럼 느낍니다. 페이지가 입력하지 않고도 일을 할 때 좋아하지 않습니다.

또한 다음 페이지가 세션이나 데이터베이스 테이블에 필요한 정보를 넣고 Response.Redirect을 사용하는 데는 아무런 문제가 없습니다. 이는 거의 일반적인 관행이며 대부분의 시나리오에서 안정적으로 작동합니다.

+0

답을 고맙습니다. 버튼에 PostBackUrl을 이미 사용했습니다. (내 .aspx 파일을 보니 바로 거기에 놓았습니다). 내가했던 것과 같은 결론에 도달했습니다. 일부 JS 코드를 실행할 수는 있지만 모범 사례는 아닙니다. 결국 결국 저는 세션 변수를 권고하고 사용했는데 Response.Redirect를 사용하고 바로 그 후에 변수를 삭제합니다. – BPruvost

2

포스트는 클라이언트 측에서 발생합니다. 현재 서버 측에서 실행중인 Page_Load 에서처럼 게시 할 때 실행하려는 코드를 호출하면됩니다.

편집 : 실제로 그렇게 게시물 데이터를 사용할 수 있습니다, 다른 영문

public void Page_Load(object sender, EventArgs e) { 
    if(!IsPostback && OnlyOneItem) { 
     Server.Transfer("TheOtherPage.aspx"); 
    } 
} 

Server.Transfer를 전체 요청을 유지에가는하십시오.

http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.transfer.aspx

+0

양식은 내가 게시물 데이터를 검색하는 다른 페이지로 연결됩니다. 그래서 나를위한 유일한 해결책은 코드 비하인드에서 다른 페이지로 수동으로 포스트 데이터를 보내는 것입니까? – BPruvost

+0

Server.Transfer 또는 최악의 경우 Response.Redirect를 사용할 수 있습니다. – ivowiblo

+0

네,하지만 POST 데이터를 가져와야하는데,이 방법으로 전송할 수 있는지 확실하지 않습니다. – BPruvost

2

내가 실제로 한 번, 비슷한 일을해야했다 당신의 Page_Load

if(!IsPostBack) 
{ 
     if(check for only one object) 
     { 
     //your submit code 
     } 
} 
+0

에 게시 할 것입니다. 제출 코드는 실제로 저에게 관심있는 부분입니다;) – BPruvost

관련 문제