将一个变量从codebehind传递给javascript函数

本文关键字:codebehind 函数 javascript 变量 一个 | 更新日期: 2023-09-27 18:29:48

我基本上想从codeehind中获取一个变量的值,以便在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"的地方是我想要的代码指针中的值。。。。有什么建议吗?

将一个变量从codebehind传递给javascript函数

尝试在代码后面公开一个属性,您应该能够访问这样的值:

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

只需在ui自动完成标记中添加用户ID作为自定义html属性。然后阅读。

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

然后你的Javascript你可以得到这个属性:

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