为什么我会收到一个返回未定义变量列表的文本框?
当我运行此代码时:
var query = (from tisa in db.TA_Info_Step_Archives
where tisa.ta_Serial.ToString().StartsWith(prefixText)
select tisa.TA_Serial.ToString()).Distinct().Take(Convert.ToInt32(count));
return query.ToList<string>().ToArray();
我得到这个XML文件:
<string>200700160</string>
<string>200700161</string>
<string>200700162</string>
<string>200700163</string>
<string>200700164</string>
<string>200700170</string>
<string>200700171</string>
<string>200700172</string>
<string>200700173</string>
<string>200700174</string>
<string>200700175</string>
<string>200700176</string>
<string>200700177</string>
<string>200700178</string>
<string>200700179</string>
<string>200700180</string>
<string>200700181</string>
<string>200700182</string>
<string>200700183</string>
<string>200700184</string>
但是,文本框会返回undefined
....
请帮忙吗?
答案 0 :(得分:4)
将我的ajax工具包更新到版本1.0.10920然后将我的代码更改为以下内容:
foreach (DataRow dr in dt.Rows)
{
items.SetValue("\"" + dr["somenumber"].ToString() + "\"", i);
i++;
}
周五晚上使用.net并不好玩。我没有生命。 :-P
答案 1 :(得分:1)
我尝试了下面的代码,它对我有用:
items.SetValue("'"+dr["somenumber"]+"'", i);
答案 2 :(得分:0)
听起来问题不在于方法,而在于您将方法的自动完成方式连接起来......您的Extender是否与以下类似:
<cc1:AutoCompleteExtender ID="Result" runat="server" TargetControlID="txtSearch" ServiceMethod="YourMethodHere"
ServicePath="~/Service/YourWebServiceHere.asmx" CompletionInterval="500"
EnableCaching="false" CompletionListCssClass="AutoComplete_List" CompletionSetCount="10">
</cc1:AutoCompleteExtender>
答案 3 :(得分:0)
我看到的问题是AJAX库将数字视为整数。它需要将它们视为字符串。
我已将它转换为字符串但仍然没有任何结果。我必须在数字中添加某种字符,以使它们的值现在被视为一个字符串。这是一件可怕的事情。但是在自动完成扩展器.js文件的AJAX库中的某个地方,它们并不寻找整数。他们只寻找需要看的字符串,因为他们的建筑方式是有缺陷的......
斯科特。
答案 4 :(得分:0)
我遇到了同样的问题。我同意这个问题肯定是因为我们在这里使用数字。只要我将alpha添加到数组项的末尾就可以了。 我相信我们发现了一个错误。
这会踢出未定义的......
...
da.Fill(dt);
string[] items = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
items.SetValue(Convert.ToString(dr["somenumber"]), i);
i++;
}
...
这里加载列表就好了
...
da.Fill(dt);
string[] items = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
items.SetValue(Convert.ToString(dr["somenumber"]+"foo"), i);
i++;
}
...
对我来说似乎是个错误。
答案 5 :(得分:0)
toolkit dll版本之间存在差异。
在更新版本中,不需要插入“'”+ +“'”,它可以正常工作。在版本1.0.10920中,它是必需的。
答案 6 :(得分:0)
http://www.asp.net/ajax 在上面这个链接你会发现AjaxControllToolkit只是下载它并在你的应用程序中添加引用我相信它会正常工作。问题是你使用非常旧的AjaxControllToolkit,因此无法正常工作,使用AjaxControllToolkit 3.5或4.0。