从后面的代码传递变量到javascript函数

时间:2012-04-02 14:58:00

标签: c# javascript function

我基本上想从代码隐藏中获取变量的值,以便在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'是我想要代码隐藏的值....任何建议?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

只需在ui-autocomplete标记中添加用户ID作为自定义html属性即可。然后从中读取。

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

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

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