2013-03-19 3 views
2

문제가있어서 해결 방법을 찾을 수 없습니다. 솔루션을 검색하지만 작동하지 않았습니다. 그래서, 나는 ItemTemplate을 가진 Datalist를 가지고 있습니다. 나는 <에 > 태그에 onclick 이벤트에 Google Analytics를 추가해야합니다. 나는
Databinder.Eval 큰 따옴표

onclick="_gaq.push(['_trackEvent', 'Homepage', 'Click on',<%#DataBinder.Eval(Container.DataItem,"URL")%>']);" <br /> 

처럼 onclick 이벤트를 추가하려고하지만 "..tag이 제대로 포맷되지 않았습니다"라는 메시지와 함께 노란색 오류 화면을 얻을. 또한 double qoutes를 &qout;으로 바꾸려고 시도했지만 성공하지 못했습니다. 나는 또한 시도했다

onclick='<%# string.Format("_gaq.push(['_trackEvent','Homepage','Click on last awarded company','{0}']);", DataBinder.Eval(Container.DataItem, "URL") %>' <br /> 

그러나 이것은 또한 효과가 없다.
이 문제를 어떻게 해결할 수 있습니까?

답변

1

코드 뒤에있는 "OnItemDataBound"이벤트에서 이러한 종류의 복잡한 데이터 바인딩을 수행해야합니다. relevant MSDN page을 살펴보십시오. 뒤에

<asp:DataList id="ItemsList" OnItemDataBound="Item_Bound" runat="server"> 

코드 :

public void Item_Bound(object sender, DataListItemEventArgs e) 
{ 
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
{ 
    // find your link 
    HyperLink link = (HyperLink)e.Item.FindControl("MyFirstHyperLink"); 

    // so something nice with your link here, for example add attributes. 
    string a = DataBinder.Eval(e.Item, "URL", "_gaq.push(['_trackEvent','Homepage','Click on last awarded company','{0}']);"); 
    link.Attributes.Add("onclick", a); 
} 
} 

면책 조항 : 당신이 여기 저기 조정을해야 할 수도 있습니다, 그래서 난 사실이 코드를 테스트하지 않았습니다. 그것은 단순히 당신에게 갈 방향에 대한 아이디어를주는 역할을합니다.

+0

나는 실제로이 방법을 사용하지 않고 aspx 파일에서 할 수있는 줄 알았는데. 고마워요.이 작품을 : D – Coder

+0

나는 개인적으로 Aspx 템플릿보다 더 나은 OnItemDataBound 메서드를 좋아해. 템플릿은 뭔가 XML로 제한됩니다 구문 분석기는 따옴표와 큰 따옴표 및 이스케이프 된 따옴표 등을 사용할 때 심각한 제한이 될 수 있습니다. – Bazzz

0

아래에서 시도해주세요.

<a href="#" onclick="_gaq.push(['_trackEvent', 'Homepage', 'Click on','<%#DataBinder.Eval(Container.DataItem,\"URL\")%>']);">Test</a> 
+0

시도해 보았습니다. 같은 오류 : ( – Coder