2011-07-29 2 views
0

GridView를 SqlDataSource에 바인딩했습니다.ASP.NET 4 GridView - 데이터베이스에서 하이퍼 링크 당기기

데이터베이스 외부의 개별 웹 공간에 저장된 작업 설명을 가리키는 하이퍼 링크를 당겨 GridView에 배치합니다.

<asp:BoundField DataField="JobDescription" HeaderText="JobDescription" 
    SortExpression="JobDescription" /> 

그래서 내가로 변환하려고 시작 :

가 원래의 GridView 열이 같은 간단한 BoundField했다 "Http://stackoverflow.com/"로 하이퍼 링크 가득 하이퍼 링크 필드.

<asp:HyperLinkField DataNavigateUrlFields="JobDescription" 
    DataTextField="JobDescription" 
    HeaderText="JobDescription" 
    SortExpression="JobDescription" 
    Target="_blank" 
    NavigateUrl="{0}" /> 

이렇게하면 원하는 결과가 나오지만 더 이상 GridView에서 해당 열을 편집 할 수 없습니다. BoundField 일 때 아이템을 편집 할 수 있었지만 하이퍼 링크로 만들 방법이 없었습니다. 작동

어느 쪽이든 ...

내가 중 하나는 HyperLinkField가 갱신 될 필요가, 또는 내가 BoundField가 데이터베이스에서 직접 가져옵니다 것과 하이퍼 링크로 포맷해야합니다.

감사합니다.

+0

Microsoft 웹 사이트에서 뭔가를 시도했습니다. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx 여전히 행의 데이터를 편집 할 수 없었습니다. – Lucretius

답변

0

유감스럽게도 대답을 발견했다. 그 대해 HTMLEncode 속성 DataFormatString에서 HTML의 순서를 false로 설정해야 ... 그렇지 않으면 물건 등의 등가로 모든 문자를 변경, HTML로 렌더링하려면 여기를

&nbsp; 

엔터티 번호 : http://www.w3schools.com/tags/ref_entities.asp

1

Template Field을 사용하십시오. 따라서 정상적인보기와 editing view을 정의 할 수 있습니다.

<asp:BoundField DataField="JobDescription" HeaderText="Job Description" 
    SortExpression="JobDescription" 
    DataFormatString="<a target='_blank' href='{0}'>Text</a>" 
    HtmlEncode="False" /> 

당신은 템플릿 필드를 필요가 없습니다