c#
  • javascript
  • asp.net
  • 2011-08-12 30 views 2 likes 
    2

    我在asp.net後端編寫代碼來傳遞參數,但是,如果參數太長,我發現它不起作用。 在後端:將參數從aspx傳遞給javascript問題

    folderList.InnerHtml += "<span onclick='AttachId(" + folder.Id + ")'>" + folder.DisplayName + "</span>"; 
    

    在前端:

    function AttachId(id) { 
          $("[id$='hf_FolderId']").val(id); 
          $("[id$='btn_Move']").click(); 
         } 
    

    參數folder.Id="AQMkAGQ2YzBkYjkxLWZjNTYtNDAwAS1hZWY2LWQ3OWI2MDkxZTE2ZAAuAAAD82EfyZcOUkeLGnLBkE1iOgEA04D3/FOc8ES6LdlZ5/AXHgAAAQRaEQAAAA=="

    如果我將其更改爲 「123」 它的工作原理。任何想法?

    或者你可以讓我知道一個更好的方法來從後向前傳遞參數。非常感謝。

    回答

    1

    行情。 123是一個數字,所以JavaScript很好用。如果您嘗試abc,我敢打賭它也會失敗。在標記中爲你的字符串添加引號,它應該可以工作。

    folderList.InnerHtml += "<span onclick='AttachId(\"" + folder.Id + "\")'>" + folder.DisplayName + "</span>"; 
    

    使用字符串連接生成HTML總是容易出錯。請記住,JavaScript字符串需要像包含它的HTML屬性一樣引用。由於您的屬性使用了單引號,因此您必須爲JavaScript使用雙引號或htmlencoded單引號。這應該工作:

    "... onclick='AttachId(\"" + folder.Id + "\")'>" + ... 
    
    +0

    你是對的,如果改成abc,仍然失敗,但是你的意思是寫ipr101的建議嗎?仍然失敗 –

    +0

    你能寫一個代碼示例嗎?非常感謝 –

    +0

    你救了我的一天,非常感謝你!!! –

    0

    其實,我相信問題不在於你的參數長度,而是包含引號"

    嘗試轉義它們。

    +0

    刪除AttachId()之前和之後的單引號?沒有幸運。 –

    0
    <span onclick='AttachId(" + folder.Id + ")'> 
    

    我想這應該改成 -

    <span onclick='AttachId('" + folder.Id + "')'> 
    

    所以變量傳遞給函數的字符串。

    +0

    沒有幸運,:(仍然失敗 –

    相關問題