public class Formwriter
{
private string msubmiturl;
private string mMethod;
private Hashtable mHash = new Hashtable();
public string SubmitURL // 프로퍼티 이동할 페이지 URL
{
get { return msubmiturl;}
set { msubmiturl = value;}
}
public void Add(string key, string value) // 포스트로 전송할 값 추가
{
mHash.Add (key, value);
}
public void Clear()
{
mHash.Clear ();
}
public void Remove(string key)
{
mHash.Remove (key);
}
public int Count
{
get
{
return mHash.Count;
}
}
public Formwriter()
{
}
public Formwriter(string rurl)
{
msubmiturl = rurl;
}
public Formwriter(string rurl, string method) //rurl - URL, method - POST, GET 등
{
msubmiturl = rurl;
this.mMethod = method;
}
public string MakeForm() // HTML을 생성 해서 string값으로 돌려줌.
{
string strForm = null;
if (msubmiturl == null)
return null;
if(mMethod == null)
mMethod = "POST";
strForm = "<HTML>\n"
+ "<HEAD>\n"
+ "<title>Form</title>\n"
+ "<META http-equiv=\"Content-Type\" content=\"text/html; charset=utf-
\">\n"
+ "</HEAD>\n"
+ "<body onload=\"javascript:document.frm.submit()\">\n"
+ "<form name=frm method=" + mMethod + " action=\""+ msubmiturl + "\">";
foreach (DictionaryEntry de in mHash) -- Post나 GET으로 전송할 키와 값을 생성
{
strForm += "<input type=\"hidden\" name=\"" + (string)de.Key + "\" value=\"" + (string)de.Value + "\">\n";
}
strForm += "</form>\n</body>\n</HTML>";
return strForm;
}
}
위와 같이 클래스를 만들어 놓고.. 폼을 리다이렉트 시킬때는 함수안에 아래와 같이 사용합니다.
Formwriter fw = new Formwriter();
또는
Formwriter fw = new Formwriter("/default.asp", "POST");
fw.Add("키","값"); // 값이 여러개의 경우 루프나 아님 계속 추가합니다.
...
..
string strhtml = fw.MakeForm();
if (strhtml.Length > 0)
{
Response.Clear();
Response.Write(strhtml);
Response.End();
}
이상입니다... 좋은 해답이 됬으면 합니다.
더 좋은 방법을 찾으시면 저한테도 알려 주세요..^^
=========================================================================================================
<FORM id="Form1" method="post" runat="server">
......
</FORM>
<FORM name="Form2" method="post" action="원하는 페이지">
<input type="hidden" name="">
</FORM>
위와같이 하단에 폼을 하나 더 만들어서
원래 있었던 곳의 값들을 하단의 폼의 hidden input으로 자바스트립트를 이용해서
복사한 다름 원하는 페이지로 보내면 이상없겠죠? viewstate문제 때문에 전 이 방법을 많이 애용합니다.
좀 자바스크립트 다루는 것이 귀찮죠.. 하지만 동작은 좀더 명확하죠.
출처: http://cafe.naver.com/webdotnet.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=42
'.NET > asp.net' 카테고리의 다른 글
특정 페이지 존재 여부 확인 (0) | 2013.05.06 |
---|---|
웹 폰트 적용중 생긴 문제점 (0) | 2011.11.21 |
자바스크립트에서 asp.net 비하인드 코드 실행하기 (2) | 2011.01.14 |
asp.net 쿠키 생성, 사용, 삭제 (0) | 2011.01.10 |
뒤로 가기 구현 (0) | 2010.11.07 |
TextBox에서 엔터키 이벤트 지정 (0) | 2010.11.07 |
해당 컨트롤에 코드 블록(<% ... %>)이 포함되어 있으므로 Controls 컬렉션을 수정할 수 없습니다. (0) | 2010.11.07 |
CheckBoxList 다중선택 정보 읽어와 체크시 문제 (0) | 2010.11.07 |
asp.net CheckBoxList 다중선택 저장, 읽기 (0) | 2010.11.06 |