반응형
1.먼저 [using System.Collections.Specialized;]이 선언돼있어야 한다.
2. QueryString을 처리할 함수를 만든다.
        public NameValueCollection getQueryStringPrms(string url)
        {
            string keyValue = string.Empty;
            NameValueCollection collection = new NameValueCollection();
            string[] querystring = url.Split('&');
            if (querystring != null && querystring.Count() > 0)
            {
                for (int i = 0; i < querystring.Count(); i++)
                {
                    string[] pair = querystring[i].Split('=');
                    collection.Add(pair[0].Trim('?'), pair[1]);
                }
            }
            return collection;
        } 
3. [WebMethod]에서 getQueryStringPrms을 호출한다.
        NameValueCollection collection = comm.getQueryStringPrms(HttpContext.Current.Request.UrlReferrer.Query);
        
         string temp = HttpContext.Current.Server.UrlDecode(collection["code"]);
 
반응형
1.[WebMethod] - > [WebMethod(EnableSession=true)]
2. HttpContext.Current.Session["sessionID"]

 
반응형
마스터페이지로 사이트를 구성하다보면 TextBox에 엔터키를 입력했을 경우 엉뚱한 동작이 발생하는 경우가 있다.
내경우에는 마스터페이지에 올려놓은 로그아웃버튼이 동작을 한다.

해결방법은 두가지가 있다.

1.자바스크립트로  if(event.keyCode == 13) return false; 를 심어주는 방법이다.
내경우엔 TextBox1.Attributes["onKeyPress"] = "if(event.keyCode == 13) return false;";라고 추가했다.

그러나 1의 방법은 한계가 있다. 모든컨트롤을 일일이 등록해야하고 html컨트롤은 별도로 추가해야하는 불편함이 있다.

2. 다른방법은 마스터페이지에 defaultbutton속성을 이용하는 것이다.
먼저  아래와 같이 서버컨트롤 버튼을 추가한다. 물론 <div>로 감싸서 화면에는 보이지 않도록 한다.
<div style="display:none"><asp:Button ID="btnNull" runat="server" /></div> 
그리고 <form에  defaultbutton에 추가한 서버컨트롤 ID를 작성한다.
<form id="form1" defaultbutton="btnNull">

 
참고로 엔터키 입력할때마다 페이지리프래쉬가 일어나는 현상을 막기 위해서
마스터 페이지 최초로딩시 btnNull버턴의 onclick이벤트에 엔터키를 막는 1의 코드를 등록했다.
btnNull.Attributes["onclick"] = "return EnterKeyBlock();";
[EnterKeyBlock()]가 자바스크립트 함수로 1).의 자바스크립트를 기록해둔 것이다.
반응형

asp.net 용량제한이 기본적으로 4메가이다.
그보다 더큰 파일 업로드에는 제약이 있는데
web.config에서 변경해줄 수 있다.

<httpRuntime maxRequestLength="10240/>

이와 같이 변경해주면된다.
10240은 파일용량이며 10240은 1024*10이므로 10메가용량을 업로드 할 수 있게한다.

참조블로그 : http://blog.naver.com/99jack/130080278979

반응형

먼저 html태그에 onmouseover와 onmouseout를 이용하면 롤오버이미지를 사용할 수 있다.
예를 들어
<img src="a.gif" onmouseover="this.src='a_over.gif'" onmouseout="this.src='a.gif'" alt="" />
이렇게 사용하면 마우스롤오버가 적용된다.

asp.net에서 서버컨트롤 imageButton을 사용하게 되면 롤오버를 적용시키기 힘들었다.
전용 컴포넌트를 만들어야했는데 만드는 방법이 도통이해가 되지 않아 내심 포기중이었는데
곰곰히 생각해보니 asp:서버컨트롤도 결국 클라이언트에 html태그로 뿌려주는 것이니
서버컨트롤에도 html태그에 대응되는 속성이 있으리라 짐작했다.
해서 인터넷을 검색해보니 관련 자료를 찾을 수 있었다.

imageButton1.Attributes["onmouseout"] = "this.src='../images/bt_ok.gif'";
imageButton1.Attributes["onmouseover"] = "this.src='../images/bt_ok_over.gif'";

이렇게 적용(Page_Load시에)하니  롤오버에 대응한다.
그런데 아무래도 서버컨트롤이라서 그런지 일반 html태그보다는 반응이 약간 느린 것 같다.
아마도... 롤오버관련된 이벤트들을 일일이 서버로 전송하게되는 것은 아닐지 짐작해본다.
반응형

using System.Drawing;
using System.Drawing.Imaging;

private void Make_CAPTCHA()
    {
        Random r = new Random();

        int width = 110;
        int height = 30;
        int fontSize = 15;
        int pf = 10;
        int sf = 6;

        string[] strRandom = new string[r.Next(4,6)];
        string strRtot = "";
        for(int i = 0; i < strRandom.Length; i++)
        {
            strRandom[i] = r.Next(0,9).ToString();
            strRtot += strRandom[i];
        }

        ViewState["cap"] = strRtot;

        Bitmap bmp = new Bitmap(width, height);
        Graphics grp = Graphics.FromImage(bmp);

        //회색사각형
        SolidBrush backBrush = new SolidBrush(Color.DarkGray);
        Rectangle rect = new Rectangle(0, 0, width, height);
        grp.FillRectangle(backBrush, rect);

        //사각형안쪽 글자
        Font font = new Font("굴림", fontSize);
        SolidBrush strBrush = new SolidBrush(Color.Red);
        grp.DrawString(strRtot, font, strBrush, pf, sf);

        string strPath = MapPath(Request.ApplicationPath) + @"\images\tmp\";
        string strName = ctcoms.getTodate();
        strName = "CHA" + strName.Substring(strName.Length - 1, 1) + ".gif"; //주석하단(※01)

        bmp.Save(strPath + strName, ImageFormat.Gif);

        imgCHA.ImageUrl = "~/images/tmp/" + strFile;
    }
/*
 * ※01: strName = "CHA" + strName.Substring(strName.Length -2, 2) + ".gif";
 * 웹캐쉬문제로 ie계열에서 제대로 인식되지 않는다.
 * 방지문자이미지를 생성할때 10개중 하나로 인식하여
 * 동일한 파일이 인식돼는 일이 없도록 하였다.
 */

http://hoonsbara.com/ 참조하였음.

보통 문자열을 생성하여 입력하도록 하는 방식인데
귀찮아서 숫자열을 생성하여 숫자열의 길이도 랜덤, 생성되는 숫자도 랜덤으로 처리했다.

반응형

Page_Load가 두번실행될 경우가 있다.
마스터페이지를 통해서 페이지를 구현했을경우 디버그할때(마스터페이지가 아닌경우에도 일어날 수 있고)
Page_Load가 두번호출되는 경우가 있다.
<img src="#"> 등의 태그가 문제있는 경우이며 이미지 링크가 일치하지 않아도 두번호출 하는 것 같다.
해당태그를 다른 것으로 대체하거나 이미지 링크를 정확하게 입력해주면된다.
반응형

 Response.AddHeader("Content-Disposition", "attachment;filename=\"test.zip\"");
 Response.ContentType = "application/octet-stream";

 Response.WriteFile("../test.zip");

반응형
asp.net에서 Request로 파일을 전송받아서 서버에 저장한다.
플랙스에서는 직접파일 처리는 불가능 한듯 하다. 
플랙스와 php,jsp등을 연동하여 많은 예제가 있는데 asp.net(c#)은 별로 없는 듯 하다.
(이것도 퍼온건데 출처가 어딘지 까먹었네...=_=)

플랫폼에 상관없는 업로드기능을 구현해보려고 만든 거였는데...
웹폼에 데이터를 전송하는 방식을 사용하기 때문에 asp.net의 파일용량제한은 별도로 해결해 줘야한다... =_=;
반응형
using System.Data.OleDb;

string connectionString = "Provider=CUBRIDProvider;location=127.0.0.1;Data Source=test_db;User ID=userid;Password=password;Cache Authentication=False;Encrypt Password=False;Mask Password=False;Persist Encrypted=False;Persist Security Info=True;Port=30000;Fetch Size=100";

OleDbConnection conn = null;
OleDbDataAdapter adp = null;

DataTable dt = null;

try
{
conn = new OleDbConnection(connectionString);
conn.Open();
adp = new OleDbDataAdapter(conn.CreateCommand());
adp.SelectCommand.CommandText = "select * from usr_info";
dt = new DataTable();
adp.Fill(dt);

DataGrid.DataSource = dt;
DataGrid.DataBind();
}
catch { }
finally
{
if (conn != null)
        conn.Close();
}
-----------------------------------------------------------------------------------------------------------------

간단한 큐브리드 예제이다. 

+ Recent posts