首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用contextKey的Ajax AutoComplete扩展器

使用contextKey的Ajax AutoComplete扩展器
EN

Stack Overflow用户
提问于 2013-09-11 18:28:05
回答 1查看 6.6K关注 0票数 0

Aspx代码:

代码语言:javascript
代码运行次数:0
运行
复制
<script type ="text/javascript">
    function setContextKey() {
        find('AutoCompExt2').set_contextKey($get("%=TxtSyllabus.ClientID%>").value)
        alert(("<%=TxtSyllabus.ClientID %>").value)
        }
</script>
<asp:TextBox ID = "TxtSem" runat = "server" Width = "200px" onkeyup="setContextKey()"></asp:TextBox>
<asp:AutoCompleteExtender ID = "AutoCompExt2" runat = "server" MinimumPrefixLength="2" CompletionInterval="100" FirstRowSelected = "false"
        TargetControlID= "TxtSem" EnableCaching = "false" CompletionSetCount = "10" ServiceMethod = "SearchSem" UseContextKey= "true" ></asp:AutoCompleteExtender>`

VB代码:

代码语言:javascript
代码运行次数:0
运行
复制
<System.Web.Script.Services.ScriptMethod(), System.Web.Services.WebMethod()> _
Public Shared Function SearchSem(ByVal prefixText As String, ByVal count As Integer, ByVal contextKey As String) As List(Of String)
    Try
        Dim cnn As New SqlConnection
        Dim cmd As New SqlCommand
        Dim ds As New Data.DataSet
        Dim SyllabusName = Mid(contextKey, 1, Len(contextKey) - 4)
        Dim Year = Mid(contextKey, Len(contextKey) - 4, Len(contextKey))


        cnn.ConnectionString = ConfigurationManager.ConnectionStrings("excelconn").ToString()
        cmd.CommandText = "Select Semester From MastLookup where SyllabusName='" & SyllabusName & "' And SyllabusYear='" & Year & "' And Semester=@SearchText + '%'"
        cmd.Parameters.AddWithValue("SearchText", prefixText)
        cmd.CommandType = Data.CommandType.Text
        cmd.Connection = cnn
        cnn.Open()

        Dim Syllabus As List(Of String) = New List(Of String)
        Dim sdr As SqlDataReader = cmd.ExecuteReader
        While sdr.Read
            Syllabus.Add(sdr("Semester").ToString)
        End While
        cnn.Close()
        Return Syllabus
        cnn.Close()
    Catch ex As Exception

    End Try
End Function`

错误:我得到了ContextKey的空值,甚至没有出现Alertbox。

EN

回答 1

Stack Overflow用户

发布于 2013-10-31 02:27:30

你应该通过AutoCompleteExtender的BehaviorIDfind,而不是ID (BehaviorID扩展了返回的DOM元素的功能,比如提供了set_contextKey函数)。在find函数前面还缺少一个$

代码语言:javascript
代码运行次数:0
运行
复制
<script type="text/javascript">
    function setContextKey() {
        $find('AutoCompBehavior2').set_contextKey($get("%=TxtSyllabus.ClientID%>").value)
        alert(("<%=TxtSyllabus.ClientID %>").value)
    }
</script>

<asp:TextBox ID="TxtSem" runat="server" Width="200px" onkeyup="setContextKey()"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompExt2" BehaviorID="AutoCompBehavior2" runat="server" MinimumPrefixLength="2" CompletionInterval="100" FirstRowSelected="false"
    TargetControlID="TxtSem" EnableCaching="false" CompletionSetCount="10" ServiceMethod="SearchSem" UseContextKey="true"></asp:AutoCompleteExtender>

此外,您可能打算将setContextKey绑定到对TxtSyllabus的更改,而不是txtSem

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18738724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档