通过Eval将多个参数传递给Javascript函数

时间:2009-06-17 20:14:25

标签: javascript asp.net data-binding gridview

我正在努力将三个参数从gridview的itemtemplate中传递给javascript函数:

对于一个参数,它可以正常工作:

<asp:HyperLink ID="hypComment" runat="server" Font-Bold="True"
NavigateUrl='<%# Eval("CCN", "javascript:ShowCommentPopUp({0});") %>'>Add
</asp:HyperLink>

其中CCN是gridview中的专栏。这实际上将传递单击该行的ccn:

我想再传递两个参数:“Name”和“Status”是相应的列,作为ShowCommentPopUp函数的第2和第3个参数。我尝试了很多方法,但最终出现了所有语法错误。很多时间都投入了。

例如:

NavigateUrl='<%# Eval(["CCN", "NAME", "javascript:ShowCommentPopUp({0}, {1});")

等等

如果有人可以帮助我,我们非常感激。

感谢, 阿帕娜

3 个答案:

答案 0 :(得分:1)

您的意思是NavigateUrl='<%# Eval(["CCN", "NAME"], "javascript:ShowCommentPopUp({0}, {1});")吗?

答案 1 :(得分:1)

使用此代码可以解决您的问题:

<asp:HyperLink ID="hypComment" runat="server" Font-Bold="True" NavigateUrl="#" OnClick="<%# String.Format("javascript:return ShowCommentPopup(""{0}"",""{1}"")",Eval("CCN"),Eval("parametername"))  %>">
    Add
</asp:HyperLink>

答案 2 :(得分:0)

我遇到了同样的问题和很多问题让它发挥作用。

最终这对我有用:你必须将eval函数的结果值放在引号之间。并且这些引号必须是html保存,因此请更换&#39;字符进入&#39;

至少对我来说,只有我的对话框显示了三个参数。

<ItemTemplate>
   <asp:Button ID="btnEdit" CssClass="btnmaatwerksmall" runat="server" Text="Wijzig"
       OnClientClick='<%# String.Format("OpenChildNietInEnterprise(&apos;{0}&apos;,&apos;{1}&apos;,&apos;{2}&apos;);", Eval("CursusNaam"), Eval("VerwachteOmzetJaar"), Eval("VerwachteOmzetKomendeJaren")) %>' />
 </ItemTemplate>