달력

9

« 2025/9 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2014. 10. 30. 09:34

[ASP.NET] GridView 데이터 Excel로 만들기 학습/ASP.NET2014. 10. 30. 09:34



protected void SaveFileButton_Click(object sender, EventArgs e)

{

string filename = DateTime.Now.ToString("yyyy-MM-dd") + ".xls";


Response.Clear();

Response.Buffer = true;

Response.AddHeader("content-disposition", "attachment;filename=" + filename);

Response.Charset = "utf-8";

Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

Response.ContentType = "application/vnd.xls";

StringWriter sw = new StringWriter();

HtmlTextWriter hw = new HtmlTextWriter(sw);


for (int i = 0; i < GridView1.Rows.Count; i++)

{

GridView1.Rows[i].Attributes.Add("class", "textmode");

}

GridView1.RenderControl(hw);


string style = @"<style> .textmode {mso-number=format:\@; } </style>";

Response.Write(style);

Response.Output.Write(sw.ToString());

Response.Flush();

Response.End();

}


만약에 마스터 페이지를 사용하고있을경우 GridView1은 form태그 내부에 와야 합니다 라는 에러가뜬다.

그럴땐 VerifyRenderingInServerForm을 override시켜주면된다.


public override void VerifyRenderingInServerForm(Control control)

{

//Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time

}


VerifyRenderingInServerForm을 override시키고 Render에서 오류가 날시에는




페이지 테그단에서 EnableEventValidation값을 넣어주고 false로 설정해주면 된다.

:
Posted by 쩡용

프로젝트를 하는도중 ASP.NET 비하인드 코드단에서 html을 수정해야되는 경우가 생겼다.


수정을해야될 div컨트롤에 runat="server"를 추가시켜줘 비하인드 코드에서 불러올수 있게 하고

 <div id="test runat="server">

</div>


비하인드코드에서

string str = string.empty;

str = "<h5>Test입니다.</h5>;

test.InnerHtml = str; 

이런 방식으로 해결을 하였다.

:
Posted by 쩡용
2014. 10. 6. 14:32

[ASP.NET]GridView DataformatString 학습/ASP.NET2014. 10. 6. 14:32

BoundField를 사용하여 DataSet에 있는 값들을 Binding시킬때

날짜나 소숫점에대해 String Format형식을 바꾸고싶다면


<asp:BoundField> 안에 DataFormatString을 사용하면 된다.


ex


2014-10-06일을 10-06으로 나타내고싶다면


<asp:BoundField HearderText="조회날짜" DataField="startDate" DataFormatString="{0:MM-dd}" HtmlEncode="false"/>


HtmlEncode를 빼면 원인은 모르겠지만 오류가난다...


날짜포맷 문자 설명


짧은날짜 

2014-10-06 

 D

 긴 날짜

2014년 10월 6일 월요일 

 f

 긴 날자와 짧은 시간

2014년 10월 6일 월요일 오전 12:00 

 F

 긴 날짜와 긴 시간

2014년 10월 6일 월요일 오전 12:00:00 

 t

짧은 시간 

오전 12:00 

 T

긴 시간 

오전 12:00:00 

 Y , y

년도와 월 

2014년 10월 


숫자 포맷문자 설명


C , c

통화포맷  

$1,234.60, \2,000 

 D , d

십진수 

235, -50 

 E , e

과학 계산용 지수 

1.23E+21, -1.4e+3 

F , f 

고정소수점 

34.500, -0.1230 

 G , g

일반 

값에 따라 다름 

N , n 

숫자 

3,456.23, -5.432 

P , p 

퍼센트 

50%, 35.5% 

X , x 

16진수 

&H3f46, 0,4618(값에 따라 다름) 




:
Posted by 쩡용