2009-05-29 6 views
5

데이터베이스의 콘텐츠를로드하는 페이지가있는 웹 응용 프로그램이 있습니다. 나는 동적 인 내용에 양식을 넣을 수 있기를 원하지만, .net은 내부 양식이 그것의 행동을 수행하게하지 않습니다. 이 방법 또는 동적 콘텐츠 페이지에서 양식을 얻을 수있는 다른 방법을 허용하는 방법이 있습니까?ASP.net 페이지의 양식 태그

감사합니다.

--EDIT--

내가 뭔가를 명확히해야한다고 생각합니다. 이것은 데이터베이스에서 내용을로드하는 aspx 페이지입니다. 지금까지 내가 아는 한, db에서 가져온 텍스트와 Label의 스틱은 결코 컴파일되거나 .net wp에 의해 처리되지 않으므로이 문제를 해결하기 위해 코드를 사용할 수 없습니다.

답변

4

전용 페이지 (ASP를 양식)에 하나 개의 형태가있을 수 있습니다 ; 어떻게 든 그 양식을 사용해야합니다.

분명히하기 위해 하나의 양식 만 처리 할 수 ​​있습니다.

+13

바보 같은, 바보 같은 웹 폼 – annakata

+0

페이지에 원하는 폼의 수를 지정할 수 있지만 'runat = "server" –

1

웹 양식 없음, 아니요. Button ~ LinkButton에 연결된 이벤트 핸들러를 사용하여 전체 페이지 양식 하나로 작업해야합니다. 다행히, 그것은 할 매우 쉽습니다 :

foo.aspx :

... 
<asp:TextBox id="txtFoo" runat="server" /> 
<asp:Button id="btnFoo" runat="server" onclick="btnFoo_Click /> 
... 

foo.aspx.cs :

... 
protected void btnFoo_Click(object sender, EventArgs e) 
{ 
    string s = txtFoo.Text; 
    // do something with s 
} 
... 
0

당신은 "사이드 폼"제출 단추가되기 위해 서버 측 클릭 이벤트 처리기를 추가하여 포스트 백을 처리해야합니다 (이것은 웹 양식이 동일한 페이지에 여러 제출 유형 부턴을 처리하는 방법입니다) 전체 게시물을 다시 보내지 않으려면 AJAX로 현명해야합니다.

0

이전에이 문제를 다뤘습니다. 한 가지 해결 방법은 내 작업을 asp : Panel 내부에서 수행하도록하려는 코드를 배치하는 것입니다. 패널을 사용하여 "DefaultButton"속성을 패널 내부의 버튼으로 설정하고 버튼을 클릭하거나 "Enter"키를 누르면 해당 버튼의 클릭 이벤트가 발생합니다. 필자는 유일하게 허용되는 asp : Form을 포함하는 마스터 페이지가있을 때 Enter 키를 눌러 "양식"을 제출하고자 할 때이 방법이 유용하다는 것을 알았습니다.

희망이 도움이됩니다.

5

제 3 자 사이트 (예 : PayPal 버튼) 로의 포스트 백이 아닌 양식을 원할 때 일반적인 문제입니다.

HTML은 양식 내에 양식을 만들지 못하게하고 대부분의 ASP.NET 페이지는 HTML 또는 마스터 페이지에서 <form runat="server" />이 "상향"되어 있기 때문에 문제가 발생합니다.

내가 가장 좋아하는 솔루션은 모든 콘텐츠를 계속 표시하면서 "높은쪽으로"양식 태그를 숨기는 것입니다. 그러면 몸에 원하는 태그를 버릴 수 있습니다. 이 작업을 동적으로 수행하는 경우 사용자 정의 양식이있는 페이지를 페이지 단위로 선택할 수 있습니다.

이 문제를 처리하기 위해 GhostForm.cs라는 클래스를 만들었습니다. 당신은 여기에 대해 모든 것을 읽을 수 있습니다

http://jerschneid.blogspot.com/2007/03/hide-form-tag-but-leave-content.html

0

모든 작업은 약 해키 매우 추한 것입니다. asp.net은 양식 태그를 사용하여 데이터를 게시하고 가져옵니다. 이 때문에 웹 양식 응용 프로그램이라고 부릅니다. Html은 중첩 된 양식을 허용하지 않습니다. 당신이하고 싶은 것은 뒤에있는 코드에서 WebRequest를 사용하는 것입니다.

페이팔 버튼과 같은 것을 사용하려는 경우 다음과 같이 간단하게 사용할 수 있습니다.

<div id="PayPalButtonContainer" runat="server"></div> 

코드 뒤에 : 마크 업

내가 처음이 문제를 가로 질러 왔을 때

public static string GetPayPalButtonMarkup() 
    { 
     const string markup = @"https://www.paypal.com/cgi-bin/webscr 
            ?cmd=_xclick&business={0} 
            &item_name=Widget 
            &amount={1} 
            &currency_code=USD"; 
     return markup; 
    } 

    PayPalButtonContainer.InnerHtml = string.format(GetPayPalButtonMarkup,"YOUR PAYPAL USER NAME", "YOUR PRICE VALUE"); 
0

, 나는 나를 위해 가장 간단한 해결책을 발견 간단한 COPY에이고 마스터 페이지를 붙여 넣은 제공 약간 다른 이름처럼 뭔가 :

SiteNameMasterPage  'Default page with FORM tag 
SiteNameMasterPageNF 'No Form tag 

그리고 나서 나는 원하는 사람에 따라 에드 form 태그 또는 여부는 단순히이

<%@ Page Title="" Language="VB" MasterPageFile="~/SiteName.master" %> 
<%@ MasterType VirtualPath="~/SiteName.master" %> 
<!-- This masterpage has the default FORM tag --> 

또는

<%@ Page Title="" Language="VB" MasterPageFile="~/SiteNameNF.master" %> 
<%@ MasterType VirtualPath="~/SiteNameNF.master" %> 
<!-- This masterpage does NOT have the default FORM tag --> 

과 같이 내 콘텐츠 페이지 상단에있는 masterpage 링크를 변경 한 다음 콘텐츠 페이지, 내가 원하는 곳에서 내 폼을 배치하십시오. <form> 태그를 포함 할 수 있습니다