jQuery auto complete shows undefined values
<p>I'm using auto complete and I'm getting <code>undefined</code>. Also, the function is returning values as string but below text box values are displayed as <code>undefined</code>. I'm working on this from past 3 days but it's not working </p>

<p>........................</p>

<p><strong>C#</strong></p>

<pre class="lang-cs prettyprint-override"><code>public string[] GetCompletionList(string prefixText) 
{ 
    RegistrationBAL _rbal = new RegistrationBAL(0); 
    DataSet ds = new DataSet(); 
    _rbal.LoadByContextSearch(ds, prefixText); 
    List&lt;string&gt; strDetailIDList = new List&lt;string&gt;(); 
    foreach (DataRow row in ds.Tables[0].Rows) 
    { 
         strDetailIDList.Add(row["SearchKey"].ToString()); 
    } 
    String[] s = strDetailIDList.ToArray(); return s; } 
</code></pre>

<p> <strong>jQuery</strong></p>

<pre><code>&lt;link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/&gt;
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"&gt;&lt;/script&gt; 
&lt;script type="text/javascript"&gt;
$(function() {
    $(".tb").autocomplete({
        source: function(request, response) {
            $.ajax({
            url: "MyService.asmx/GetCompletionList",
            data: "{ 'prefixText': '" + request.term + "' }",
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                dataFilter: function(data) { return data; },
                success: function(data) {
                    response($.map(data.d, function(item) {
                        return {
                            value: item.SearchKey
                        }
                    }))
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(textStatus);
                }
            });
        },
        minLength: 1
    });
});
&lt;/script&gt;
</code></pre>
