2014-05-21 59 views
0

我有一箇中繼器內的超鏈接。我想從Nagivate Url調用一些JavaScript,並傳入js函數,從databound對象中獲取一個屬性。將asp.net數據綁定對象參數傳遞給javascript

<asp:Repeater id="repRecentDocuments" runat="server"> 
    <ItemTemplate> 
     <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="javascript:getRecentDoc('<%# ((RecentDocs)Container.DataItem).link %>')" Text='<%# ((RecentDocs)Container.DataItem).name %>' /> 
    </ItemTemplate> 
</asp:Repeater> 
<asp:Button id="btnGetRecent" runat="server" style="display:none" OnClick="GetRecentDocument" /> 

但物業沒有解決,這是在傳遞的變量的值。

<%# ((RecentDocs)Container.DataItem).link %> 

有什麼建議?

回答

0

嘗試使用OnItemDataBound事件在直放站和使用事件處理程序如下

<asp:Repeater id="repRecentDocuments" runat="server" OnItemDataBound="RepRecentDocumentsOnItemDataBound"> 
<ItemTemplate> 
    <asp:HyperLink ID="HyperLink1" runat="server" /> 
</ItemTemplate> 

protected void RepRecentDocumentsOnItemDataBound(object sender, RepeaterItemEventArgs e){ 
if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem) return; 
var doc= (RecentDocs) e.Item.DataItem; 
var hlink= (HyperLink) item.FindControl("HyperLink1");  
hlink.NavigateUrl= string.Format("javascript:getRecentDoc('{0}')",doc.link); 
} 
+0

工作,感謝您的幫助! – baldie