我想将c#绑定变量传递给javascript函数。这是我的代码:
<asp:LinkButton ID="lbID" runat="server" Text="<%#Text%>" OnClientClick="passAccessory('<%#Bind(variable)%>'); "></asp:LinkButton>
但它总是会产生错误:“htmlfile:未实现”。
代码没有解释onclick="passAccessory('<%#Bind(variable)%>');"
有谁知道如何解决它?
感谢。
修改:我已将代码更改为
<asp:LinkButton ID="lbID" runat="server" Text="<%#Text%>" OnClientClick="passAccessory('<%# Eval("lblTest.ClientID") %>');"></asp:LinkButton>
这是与之相关的代码,它使用lblTest.ClientID
<asp:Label ID="lblTest" runat="server" Text='<%#Bind("reference")%>' />
但是我收到了一个错误:HttpException. Databinding ... does not contain a property with the name lblTest
。我的代码有什么问题吗?
编辑:这些帖子给了我一个线索。
http://www.west-wind.com/Weblog/posts/5364.aspx
I am trying to learn how to bind an IEnumerable LINQ collection to a repeater
现在我想使用
<asp:LinkButton ID="lbTest" runat="server" Text='<%#Text%>' OnClientClick='<%#string.Format("passAccessory(\"{0}\");", Eval("Ref"))%>'></asp:LinkButton>
答案 0 :(得分:5)
您不需要双向绑定,而是需要Eval。
<asp:LinkButton ID="lbID" runat="server" Text="<%#Text%>" OnClientClick='passAccessory(\"<%# Eval("variable") %>\");'></asp:LinkButton>
答案 1 :(得分:2)
我没有及时使用ASP.NET网页,但我相信它应该是这样的:
OnClientClick="<%# string.Format("passAccessory('{0}');", Container.DataItem("variable")) %>"
答案 2 :(得分:2)
您可以通过从Code-Behind更改OnClientClick事件轻松完成此操作。
lbID.OnClientClick = "passAccessory(' " + variable + "')";