将ASP从ASPX传递给Javascript函数作为参数

时间:2008-10-30 11:54:18

标签: c# asp.net javascript

<a id="lblShowTimings"
     runat="server"
     title='<%# Eval("SHOW_Name") %>'
     onclick='PopulateTicketDiv(<%#Eval("SHOW_ID") %>)'>  <-- this is the problem
  %#Eval("SHOW_Time") %>
</a>

Eval可以作为参数传递给javascript函数吗? 如果是这样的语法?

6 个答案:

答案 0 :(得分:40)

是。不过你要做的是:

onclick='<%# "PopulateTicketDiv(" +Eval("SHOW_ID") + " );" %>'

答案 1 :(得分:18)

当您想要将字符串作为参数传递时,上述解决方案会产生问题, 您可以使用以下语法来完成:

OnClientClick='<%# String.Format("javascript:return displayDeleteWarning(\"{0}\")", Eval("ItemName").ToString()) %>' 

无论参数数据类型如何,上面的行都应该有效

答案 2 :(得分:3)

尝试

<script type="javascript">
     //Pollute the global namespace
     var ticketDivID = <%= SHOW_ID %>
</script>

<a id="lblShowTimings" runat="server" title='<%# Eval("SHOW_Name") %>' onclick='PopulateTicketDiv(ticketDivID)'> <%#Eval("SHOW_Time") %></a>

在旁注上,因为你有runat =“server”,你可以设置OnRowDataBound后端的onclick,如果它在网格/转发器中,或者如果没有则设置在page_load上。

答案 3 :(得分:2)

您可以在gridview,repeater或..etc中使用此语法。

<asp:ImageButton  
 ID="Imagebutton1" runat="server"
 ImageUrl="../../common/images/pencil.gif"                
 OnClientClick='<%# String.Format("EditBankAccount(\"{0}\");", Eval("BankAccountID")) %>'
 OnClick="ImgBankAccountsDGEdit_Click"/>

您的JavaScript功能将是:

 function EditBankAccount(bankaccountid) {
       // Your code goes here
       // return true OR false based on your requirement
    }

答案 4 :(得分:0)

请检查此代码

onclick ='&lt;%#Eval(“DocumentPath”,“Chk(\”{0} \“)”)%&gt;'

答案 5 :(得分:0)

基本上,您需要转义报价

<asp:CheckBox onclick='<%# "ToggleByPassValidationRules(" + "\"" + Eval("Name") + "\"" + ");" %>' ID="chkIsRuleActive" runat="server" Enabled="false" />