我正在创建一个包含自动建议的文本框。所以,它运作良好。它只建议使用名字,但我希望它能建议全名(两个不同列的名和姓)。看一下后面的代码,它按预期工作:
<System.Web.Services.WebMethod()> _
Public Shared Function GetNames(ByVal prefixText As String, ByVal count As Integer) As String()
Dim db As New DemoDataContext()
Return db.Students.Where(Function(n) n.FirstName.StartsWith(prefixText)).OrderBy(Function(n) n.FirstName).Select(Function(n) n.FirstName).Take(count).ToArray
End Function
这是标记:
<asp:TextBox ID="TextBox1" runat="server" Width="191px"></asp:TextBox>
<cc1:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server"
Enabled="True" minimumprefixlength="1" ServiceMethod ="GetNames" TargetControlID="TextBox1">
</cc1:AutoCompleteExtender>
我编写了以下代码,试图让文本框显示全名但不起作用:
Dim query = (From s In db.Students _
Where s.FirstName.StartsWith(prefixText) _
Order By s.FirstName _
Select New With {.Name = s.FirstName & " " & s.LastName}).Take(count).ToArray
Return query
当我构建项目时,它表示“类型的值'一维数组(第50行)'不能转换为'一维数组的字符串',因为'(第50行)'不是从'字符串派生的““
Anyboy有一个建议,请评论。谢谢。
答案 0 :(得分:2)
不要使用name属性创建一个新的匿名对象,只需返回字符串本身:
Dim query = (From s In db.Students _
Where s.firstname.StartsWith(prefixText) _
Order By s.firstname _
Select s.firstname & " " & s.lastname).Take(count).ToArray