【发布时间】:2009-12-08 15:24:55
【问题描述】:
我正在创建一个带有自动建议的文本框。所以,它运作良好。它只建议名字,但我希望它建议全名(名字和姓氏两个不同的列)。看看下面的代码按预期工作:
<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 行)'不是从'字符串派生的'"
任何男孩有建议,请发表评论。谢谢。
【问题讨论】:
-
我没有在 Select 语句中使用匿名类型,而是使用了这样的别名 Select FullName = s.FirstName & " " & s.LastName 并且它可以工作。不过,我还是想看看你的建议。
标签: asp.net vb.net linq-to-sql