2014-05-21 28 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