1

我试图在 .aspx 页面中调用 c# 属性,其中 myfunc 是 jquery 函数。这个函数接受我通过 c# 公共属性传递的参数。我想在 div 渲染后立即调用此函数。以前我在 ascx 控件中的 prerender 事件上完成了此操作。以下代码的确切语法是什么,从这里调用 jquery 函数是否有效?

    <div  class ="v" onload ="Javascript:myfunc('<%= this.articleID  %> '      
     ,'" +<%=this.UserID %>+"','" +<%=this.EncryptedUserID %>" +','" +<%# 
     this.ItemIndex  %>)">

谢谢

已编辑

好的,如果我喜欢这种方式

            <div  class ="v"  >
                         <script language ="javascript" >

                          JGetTotalVotes(<%= this.articleid  %>  ,<% 
              this.ThisEncryptedUserID %>,<% this.ItemIndex  %>,'aaa');
                          </script>

我不想要服务器端隐藏字段解决方案,如果我使用隐藏字段(非服务器 html 标记),那么我仍然需要调用 <%%> 从服务器端获取值到隐藏字段

4

2 回答 2

1

如果这不是问题,我看到您在最后一个参数之后缺少单引号。您可以使用隐藏字段并在 javascript 中调用该函数

将此添加到您的页面

<asp:HiddenField runat="server" ID="hdnArticleId" ClientIDMode="Static" />
<asp:HiddenField runat="server" ID="hdnUserId" ClientIDMode="Static"/>
<asp:HiddenField runat="server" ID="hdnEncryptedUserID" ClientIDMode="Static"/>
<asp:HiddenField runat="server" ID="hdnItemIndex" ClientIDMode="Static"/>

在 Page_Load 事件中绑定那些隐藏字段记得添加 ClientIDMode="Static" 以设置 id,因为您设置不是由 asp.net 生成的,以便能够在 javascript 中使用它们

添加到您的 javascritp

function YourFunction(){
     var ArticleId = document.getElementById("hdnArticleId").value;
     var UserId= document.getElementById("hdnUserId").value;
     var EncryptedUserID= document.getElementById("hdnEncryptedUserID").value;
     var ItemIndex= document.getElementById("hdnItemIndex").value;
     // your code goes here
}

并且不要忘记在页面 onload 中调用您的 javascript 函数

于 2012-09-26T12:55:09.583 回答
0

Div 元素不引入外部内容,因此它们没有加载事件。

如果你想在一个 div 元素被解析后运行一些 JS:

<div></div>
<script> foo(); </script>
于 2012-09-26T12:46:51.990 回答