2012-09-26 19 views
1

我想調用.aspx頁面中的c#屬性,其中myfunc是jquery函數。 這個函數使用我通過c#公共屬性傳遞的參數。我想在div渲染後立即調用這個函數。以前我在ascx控件的prerender事件上做了這個。下面的代碼的wha是精確的ssyntax並從這裏調用jquery函數是有效的嗎?分載函數和嵌入服務器代碼c#

<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標記),那麼我仍然需要調用< %%>來獲取v從服務器端到隱藏字段的提示

回答

0

Div元素不會拉入外部內容,因此它們沒有加載事件。

如果你想運行一些JS div元素已經被解析後:

<div></div> 
<script> foo(); </script> 
+0

如何將值傳遞給foo(arg1,arg2,arg3)從

+0

err ... like:'foo(arg1,arg2,arg3)' – Quentin

+0

values我正在通過#服務器代碼,所以我<% arg%> –

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事件中那些hiddenfields記得添加的ClientIDMode =「靜態」設置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 
} 

的d請不要忘記在頁面調用你的javascript函數

+0

我不想使用任何服務器端控件,因爲我想避免viewstate problems.prevously我已經使用服務器端控件,但我正在轉向純粹的無狀態設計。 –

+0

我不喜歡將服務器代碼與JavaScript混合,所以我會使用這種將必要數據加載到隱藏域的方法。 – Graham

+0

@klusner - 您可以關閉ViewState並仍然使用服務器控件。他們只是不會在回發中自動重新填充。 – Graham