이거 때문에 꽤나 골치 아팠었는데
해결방법이 있었네여....

Productivity Power Tools

이 애드온을 설치하면 되는거네요..(아직 해보진 않았지만..)

도구-확정관리자 에서 검색해서 설치하면 되네요..
후훗

출처 : 맨날맑음님 블로그
by 피요히코~ 2010. 12. 10. 17:14

어느날 갑자기 집 컴터의 IE8에서 개발자도구를 키면 분명 이놈이 실행은 되는데 볼수는 없는
기이한 현상이 생겼습니다.
귀찮아서 걍 냅뒀는데..
이제 회사 컴터에서도 그래서
열심히 검색검색...
이거저거 다 검색해보고
영어로도 검색해 봐도 못찾다가..
엄하게. 찾게 됐네요..

처음 적용했더니
적용이 안되길래
IE 다 끄고 다시 했드니. 잘 되네요..

더 웃긴건..
뭐라고 검색해서 찾았는지 기억이 안남.. (5분도 안됐는데...)
열어본 페이지에서도 못찾겠음..(오늘 날짜로 들어간 페이지가 10개도 안되는데. 없음...;;;;)

출처를 남기려 했는데.... (ms쪽에 질문해서 답변 받은 페이지 같았는데.. ;;;;)
그래도 질답 페이지였으니.. ㅠㅠㅋ

암튼 그 문제의 원인은
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools 에 있는 WindowsPos의 값이
너무 높게 설정되어 있어서 생긴 문제라고 하네요..

해결 방법은
아래 내용을 그냥 메모장에 넣고.
ie.reg 이름으로 저장한 후 실행하면 됩니다..

으으~~~

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools]
"Disabled"=dword:00000000
"UseDevToolsDebugger"=dword:00000001
"Pinned"=dword:00000000
"Minimized"=dword:00000000
"MinimizedRestoreHeight"=dword:00000000
"MenuBar"=dword:00000001
"ActiveTab"=dword:00000000
"ActivePaneLeft"=dword:00000000
"WindowPos"=hex:0a,00,00,00,0a,00,00,00,00,04,00,00,00,03,00,00
"1"=hex:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools\Options]
"ValidateHtml"="http://go.microsoft.com/fwlink/?LinkID=129216&verbose=1&uri=%url%"
"ValidateCss"="http://go.microsoft.com/fwlink/?LinkId=129217&profile=css2&warning=2&uri=%url%"
"ValidateRss"="http://go.microsoft.com/fwlink/?LinkId=129220&url=%url%"
"ValidateLocalHtml"="http://go.microsoft.com/fwlink/?LinkId=129218"
"ValidateLocalCss"="http://go.microsoft.com/fwlink/?LinkId=129219"
"ValidateLinks"="http://go.microsoft.com/fwlink/?LinkId=129221&check=Check&hide_type=all&summary=on&uri=%url%"
"ValidateAcc508"="http://go.microsoft.com/fwlink/?LinkId=129222&rptmode=-1&url1=%url%"
"ValidateAccWCAG"="http://go.microsoft.com/fwlink/?LinkId=129223&rptmode=2&url1=%url%"
"ValidateHtmlDomain"="w3.org"
"ValidateCssDomain"="w3.org"
"ValidateRssDomain"="feedvalidator.org"
"ValidateLocalHtmlDomain"="w3.org"
"ValidateLocalCssDomain"="w3.org"
"ValidateLinksDomain"="w3.org"
"ValidateAcc508Domain"="contentquality.com"
"ValidateAccWCAGDomain"="contentquality.com"

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools\Options\BkgColor]
"ClassIDBkgColor"="#FFCCCC"
"LinkPathBkgColor"="#FFCCCC"
"TabIndexBkgColor"="#FFCCCC"
"AccessibilityBkgColor"="#FFCCCC"
"ImgDimsBkgColor"="#FFCCCC"
"ImgSrcBkgColor"="#FFCCCC"
"ImgSizeBkgColor"="#FFCCCC"
"ImgAltTxtBkgColor"="#FFCCCC"

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools\Options\DisableScript]

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools\Options\Resize]

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools\Options\Ruler]
"SnapToXY"=dword:00000001
"SnapToElements"=dword:00000000
"HideTicks"=dword:00000000
"HideEndPoints"=dword:00000000
"RulerCurrentColor"=dword:00000000
"RulerColor1"=dword:00ffffff
"RulerColor2"=dword:00000000
"RulerColor3"=dword:000000ff
"RulerColor4"=dword:0000ff00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools\Options\ZoneOptions]

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IEDevTools\ValidateConsent]


by 피요히코~ 2010. 10. 30. 00:39
GridView에서 특정 컬럼에 있는 값들을 인자로 해서 특정 스크립트를 호출해줄때.

RowDataBound이벤트에서
(e.Row.RowType == DataControlRowType.DataRow) 일때

e.Row.Attributes.Add("OnClick", "popView(this)");
e.Row.Attributes.Add("arg1", e.Row.Cells[1].Text);
e.Row.Attributes.Add("arg2", e.Row.Cells[8].Text);
e.Row.Attributes.Add("arg3", e.Row.Cells[9].Text);
e.Row.Attributes.Add("OnClick", "popView(this)");

이렇게 해주고.
(arg1에는 두번째컬럼의 Text값이, arg2에는 아홉번째 컬럼의 Text값이, arg3에는 열번째 컬럼의 Text값이 들어갑니다)
aspx쪽에서 스크립트에서
function popView(arg)
{
     var value1 = arg.arg1;
     var value2 = arg.arg2;
     var value3 = arg.arg3;
}

이렇게 사용하면 됩니다.

Repeater에서는 같은 방법을 사용할수 없어서(못해서.ㅠㅠ)

aspx페이지에서 직접
<ItemTemplate>
<tr style="height: 25px;" onclick="popView('<%# Eval("FILE_CODE")%>' )">
<td ....
</tr>
</ItemTemplate>

이런식으로 넣어줬습니다. 위에서 처럼 배열(?)처럼 넣지는 못했구요.
그냥 repeater의 datasource에서의 특정 컬럼값을 넣어줬지요...
(물론 이렇게 밖에 하는걸 못찾아서... ㅠㅠ)

요즘은 Gridview는 잘 안쓴다고 하던데..

전 아직도 이렇게 쓰네요. 으헝헝


by 피요히코~ 2009. 4. 7. 16:03

function getParameter(qs) {
          var value = '';
          var address = unescape(location.href);
          var param= (address.slice(address .indexOf('?') + 1, address .length)).split('&');

          for (var i = 0; i < param.length; i++) {
              var name = param[i].split('=')[0];

              if (name.toUpperCase() == qs.toUpperCase()) {
                  value = param[i].split('=')[1];
                  break;
              }
          }
          return value ;
}

빨간 부분이 핵심~

by 피요히코~ 2009. 4. 6. 16:42
by 피요히코~ 2009. 2. 26. 01:09

SqlDataReader vs SqlDataAdapter 

              연결 vs 비연결

 

 DB 종속적(sqlData~, oleData~)  vs DB 독립적(Dataset 앞에   sql 어쩌고가 없으니까..)

 

 SqlDataReader (매번 db 왓다갓다 해야되므로 속도가 저하된다.)

 

 질의(select *from tblAddress) 날릴때마다 db 왓다갓다 하면서 결과를 보여주는것.

 

 SqlDataAdapter (db 매번접근해야되는 횟수가 많으면 속도가 훨씬 빠르다. db 매번 접속하지 않으니까..더많이쓰임)

 

 fill 메서드가 호출되면 그이후에는 db 접속하지않는다. DataSet "select *from tblAddress" 결과가 복사되어있다.

 

이후부터는 DataSet 에서 가져와서 사용하는것이다.

 

 

 

string query = "select *from tblAddress";

// 1. 데이터 어댑터 생성

SqlDataAdapter adapter = new SqlDataAdapter(query, Properties.Resources.conStr);

            

// 2. 데이터 집합 생성 - 복사본

DataSet ds = new DataSet();

 

// 3. 데이터 채우기

adapter.Fill(ds, "tblAddress");

 

Console.WriteLine(ds.Tables["tblAddress"].Rows.Count);

 

// 4. 데이터 확인

DataTable dt = ds.Tables["tblAddress"];

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

 {

Console.WriteLine("{0}\t{1}\t{2}\t{3}", dt.Rows[i]["id"].ToString(),dt.Rows[i]["name"].ToString(),

dt.Rows[i]["email"].ToString(), dt.Rows[i]["age"].ToString());

 }

 


 

------------------------------------------------------------------------------------------------------------------------------

 

 

//질의가 두개 일때의 처리방법

SqlDataAdapter adapter = new SqlDataAdapter("select *from tblTest1; select *from tblTest2;", con);

 

DataSet ds = new DataSet();

adapter.Fill(ds); // 질의가 두개일때는 임시테이블명 못준다.

            

 // 질의가 두개 일때는 아래와같이 테이블 이름을 준다...

ds.Tables[0].TableName = "tblTest1";

ds.Tables[1].TableName = "tblTest2";

 

Console.WriteLine(ds.Tables.Count);

 

for (int i = 0; i < ds.Tables.Count; i++)

 {

for (int j = 0; j < ds.Tables[i].Rows.Count; j++)

{

Console.WriteLine("{0}\t{1}",ds.Tables[i].Rows[j]["seq"].ToString(), ds.Tables[i].Rows[j]["memo"].ToString());

}

}

 

// 테이블 1 추가

SqlDataAdapter adapter2 = new SqlDataAdapter("select *from tblAddress", con);

//DataSet ds2 = new DataSet();

 adapter2.Fill(ds, "tblAddress");

 

 Console.WriteLine(ds.Tables.Count);

 

for (int i = 0; i < ds.Tables.Count; i++)

{

Console.WriteLine(ds.Tables[i].TableName);

 }


 

-----------------------------------------------------------------------------------------------------------

 

// 연결지향

// 리스트를 2 출력!

// 연결데이터를 안쓰는 가장큰이유.. 동일한데이터를 2번출력 없으므로..

 // 따라서 연결지향쓰는 경우는 한번만 훓어서 출력하고 싶을경우에 쓴다.

SqlConnection con = new SqlConnection(Properties.Resources.conStr);

 

SqlCommand cmd = new SqlCommand("select *from tblAddress", con);

con.Open();

SqlDataReader reader = cmd.ExecuteReader();

            

// EOF 커서는 전진커서..뒤로 역탐색은 불가능하다.

while (reader.Read())

{

Console.WriteLine((int)reader["age"]+1);

// ★★ reader.GetInt32() : 캐스팅되서 나오는것. , 인덱스로만 접근가능하다.

Console.WriteLine(reader.GetInt32(3) + 1); 

Console.WriteLine("{0}\t{1}", reader["id"].ToString(), reader["age"].ToString());

}

 

 reader.Close();

reader = cmd.ExecuteReader();

 

while (reader.Read())

 {

 Console.WriteLine("{0}\t{1}", reader["id"].ToString(), reader["age"].ToString());

}

 con.Close(); // 읽은후에는 연결종료

 reader.Close(); // reader 종료

 

// 비연결

 // 2번출력해주는게 쉽다.빠르다. (DatasSet 들어있으니까..)

SqlDataAdapter adapter = new SqlDataAdapter("select *from tblAddress", con);

DataSet ds = new DataSet();

adapter.Fill(ds, "tblAddress");

 

// 2 출력

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

{

Console.WriteLine("{0}\t{1}", ds.Tables[0].Rows[i]["id"].ToString(), ds.Tables[0].Rows[i]["age"].ToString());

}

 Console.WriteLine();

 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 

 {

Console.WriteLine("{0}\t{1}", ds.Tables[0].Rows[i]["id"].ToString(), ds.Tables[0].Rows[i]["age"].ToString());

}


by 피요히코~ 2009. 2. 25. 13:17

ADO.NET


ExecuteNonQuery

ExecuteReader : SqlDataReader 반환.

 - reader 원본테이블을 가져오는게 아니라 select 결과값을 가져오는 것이다.

 - reader.FieldCount = 레코드의 전체 갯수 (배열의 count  같음)

 - 쿼리가 두개있을때 읽어 오는방법

 

cmd.CommandText = "select id, name, email from tblAddress; select count(*) from tblAddress";

while (reader.Read())

{

for (int i = 0; i < reader.FieldCount; i++)

{

Console.Write("{0}\t", reader[i]);

}

Console.WriteLine();

}

 

// 두번쨰 결과셋에 접근

if (reader.NextResult())

{

// count(*)

reader.Read();

Console.WriteLine(" 학생수(2번째select 사용): {0} ", reader[0]);

}

 reader.Close();


by 피요히코~ 2009. 2. 25. 13:16

XMLDocument 이용한 검색

 

string path = "booklist.xml";

XmlDocument doc = new XmlDocument();

doc.Load(path);

string xPath = "//book/title[../@kind='소설']";

// SelectNodes 메서드는 검색조건에 맞는 개체를 XmlNodeList 반환하고

// SelectSingleNode 메서드는 검색조건에 맞는 단한개의 XmlNode 만을 반환(ID속성일 경우 쓰임)

           

XmlNodeList nodeList = doc.SelectNodes(xPath);

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

{

string title = nodeList[i].InnerText;

Console.WriteLine(title);

}


 

XPathDocument 이용한 검색

 // [1]. XPathDocument 생성

XPathDocument xdoc = new XPathDocument("booklist.xml");

// [2]. XPathNavigator 생성 -> XML 데이터를 탐색하고 편집하기 위한 커서모델을 제공한다.

XPathNavigator xPathNavi= xdoc.CreateNavigator();

// [3]. XPathNodeIterator 생성 -> 반복기 역활

XPathNodeIterator xPathIterator = xPathNavi.Select("//booklist/book/title[../@kind='컴퓨터']");

// [4]. kind='컴퓨터' 없을 까지 돈다.

while (xPathIterator.MoveNext())

{

     XPathNavigator navigatorTitle = xPathIterator.Current;

     Console.WriteLine(navigatorTitle.Value);

}  



by 피요히코~ 2009. 2. 25. 13:15

XML 에서 속성 가져오는 방법..

            string path = "booklist.xml";
            XmlDocument doc = new XmlDocument();
            doc.Load(path);

            XmlElement booklist=doc.DocumentElement;
            XmlElement FirstBook = (XmlElement)booklist.FirstChild;

            // 1. XmlAttributeCollection 를 사용해서 속성 가져오기 
            XmlAttributeCollection attributes = FirstBook.Attributes;
            for (int i = 0; i < attributes.Count; i++)
            {
                XmlAttribute attribute = (XmlAttribute)attributes[i];
                Console.WriteLine(attribute.Name + ":" + attribute.Value);
            }

            // 2. GetAttributd() 메서드를 이용해서 속성 가져오기
            string id = FirstBook.GetAttribute("id");
            Console.WriteLine("id:"+id);
            string kind = FirstBook.GetAttribute("kind");
            Console.WriteLine("kind:"+kind);
        }



 

XML 에서 모든엘리먼트 가져오기
 
           string path = "booklist.xml";
            XmlDocument doc = new XmlDocument();
            doc.Load(path);

            XmlElement booklist = doc.DocumentElement;

          
            //// GetElementsByTagName() 으로 엘리먼트 가져오기
            XmlNodeList titleNodeList = doc.GetElementsByTagName("price");
            for (int i = 0; i < titleNodeList.Count; i++)
            {
                XmlNode titleNode = titleNodeList[i];
                XmlNodeList childNodeList = titleNode.ChildNodes;
                XmlNode textNode = childNodeList[0];
                string value = textNode.Value;
                Console.WriteLine(value);
            }



by 피요히코~ 2009. 2. 25. 13:14
string filePath = "booklist.xml";

XmlDocument doc = new XmlDocument();

doc.Load(filePath);

// 잘짜인 xml 이면은 반드시 한개의 엘리먼트가 있기때문에 XmlDocument 개체의 속성인 DocumentElement 바로 얻을 있다.

 

XmlElement booklist = doc.DocumentElement; 

 

// 첫번쨰 자식엘리먼트의 노드들의 수를 가져온다.

XmlNodeList childs = FirstBook.ChildNodes;

 

// 첫번쨰 자식엘리먼트의 카운트수 만큼 노드의 이름 내용을 보여준다.            

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

{

       XmlElement eChild = (XmlElement)childs[i];

      Console.WriteLine(eChild.Name + ":" + eChild.InnerText);

 }


by 피요히코~ 2009. 2. 25. 13:14
| 1 2 |