2012-04-02 215 views
2

我bascially想從代碼隱藏在自動完成JavaScript函數使用一個變量的值....在這裏傳遞一個變量javascript函數的功能是:從代碼隱藏

 $(document).ready(function() { 
$('.PONumbers').autocomplete(
    { 
     source: function(request, response) { 
      $.ajax({       
       url: "../GenericHandlers/PONumber.ashx", 
       dataType: "json", 
       data: { 
        q: request.term, 
        userid:'622' 
       },       
       success: function(data) { 
        response(data); 
       } 
      }); 
     }, 
     minLength: 3 
    }) 

    }).unbind("blur.autocomplete"); 

$("body:not(.ui-autocomplete)").live('click', function(){ 
     $('.PONumbers').autocomplete("close"); 
    });  

我在哪裏價值'622'是我想要從代碼隱藏的價值....任何suggstions?

+2

你用什麼語言代碼隱藏? – 2012-04-02 14:59:53

+0

c-sharp sldjlskdflsj – Eoiner 2012-04-02 15:03:24

+0

如果這個值對於請求是必需的,我相信你應該在客戶端提供這個值(即使你必須把它放在一個隱藏的字段中),所以你可以很容易地把值作爲請求數據。 – MilkyWayJoe 2012-04-02 15:04:10

回答

0

嘗試在暴露的屬性代碼後,你應該能夠訪問這樣的值:

userid:'<%= this.UserID %>' 

而在後臺代碼:

public int UserID 
{ 
    get 
    { 
     return (int)Session["UserID"]; 
    } 
} 

使用頁面方法

你也可以利用這個PageMethods

[ScriptMethod, WebMethod] 
public static string GetLabelText() 
{ 
    return "Hello"; 
} 

和客戶端上:

<script type="text/javascript"> 
    insertLabelData = function() { 
     PageMethods.GetLabelText(onSuccess, onFailure); 
    } 
    onSuccess = function(result) { 
     var lbl = document.getElementById('lbl'); 
     lbl.innerHTML = result; //your code-behind value 
    } 
    onFailure = function(error) { 
     alert(error); 
    } 
</script> 

這裏是我把上面的代碼從文章:
http://blogs.microsoft.co.il/blogs/gilf/archive/2008/10/04/asp-net-ajax-pagemethods.aspx

這裏是PageMethods另一個教程:
http://aspalliance.com/1922_PageMethods_In_ASPNET_AJAX

+0

好的會嘗試,謝謝 – Eoiner 2012-04-02 15:02:53

+0

你的意思是聲明和初始化變量,是嗎? – Eoiner 2012-04-02 15:04:57

+0

只需在代碼隱藏中創建一個屬性即可返回您需要的值,在這種情況下,該值就是UserID。 – 2012-04-02 15:07:28

0

只需將用戶標識添加爲您的ui-autocomplete標記中的自定義html屬性即可。然後從中讀取。

<input type="text" class="ui-autocomplete" userid="<%=userID%>"> 

然後你的Javascript你可以得到這個ATTR:

$(".ui-autocomplete").attr('userid') // will return the id printed in your input attr 
+0

不知道你在這裏的意思,而不是真的很熟悉javascript – Eoiner 2012-04-02 15:09:19

+0

我已經爲你添加了一個例子。這是最簡單的方法,因爲您不需要更改動態的JS文件。 – 2012-04-02 15:14:54

+0

我其實現在正在工作,無論如何都歡呼。 – Eoiner 2012-04-02 15:20:23