如何将csharp绑定变量传递给Javascript函数

时间:2010-11-30 08:39:17

标签: c# javascript function variables binding

我想将c#绑定变量传递给javascript函数。这是我的代码:

<asp:LinkButton ID="lbID" runat="server" Text="<%#Text%>" OnClientClick="passAccessory('<%#Bind(variable)%>'); "></asp:LinkButton>

但它总是会产生错误:“htmlfile:未实现”。

代码没有解释onclick="passAccessory('&lt;%#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>

3 个答案:

答案 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 + "')";