I have a dynamic data enabled website and loaded a ado net model. I then added a custom page list to one of the tables that page is below. All is the generated code except the ajax toolkit script manager and autocomplete extender which I added.
I get an error in ie 11 saying sys undefined and the autocomplete doesn't work. I get the error below when I go into the internet explorer debugger.
Sys.WebForms.PageRequestManager._initialize('ToolkitScriptManager1', 'ctl00', ['tUpdatePanel1','UpdatePanel1'], [], [], 90, ''); Sys undefined
the list.aspx page is below:
<%@ Page Language="VB" CodeFile="List.aspx.vb" Inherits="List" %>
<%@ Register src="~/DynamicData/Content/GridViewPager.ascx" tagname="GridViewPager" tagprefix="asp" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<form runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:Label runat="server" ID="lblReferrerName" Text="Address: "></asp:Label>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:Label runat="server" ID="Label1" Text=" Select address and press button "></asp:Label>
<asp:AutoCompleteExtender ID="txtName_AutoCompleteExtender" runat="server"
DelimiterCharacters="" Enabled="True"
TargetControlID="txtName" MinimumPrefixLength="2" CompletionInterval="1000"
EnableCaching="false" FirstRowSelected="false" CompletionSetCount= "100" ServiceMethod="GetCompletionList2"
UseContextKey="True">
</asp:AutoCompleteExtender>
<asp:Button ID="Button1" runat="server" Text="Button" Width="67px" />
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true">
<DataControls>
<asp:DataControlReference ControlID="GridView1" />
</DataControls>
</asp:DynamicDataManager>
<h2 class="DDSubHeader"><%= table.DisplayName%></h2>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="DD">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true"
HeaderText="List of validation errors" CssClass="DDValidator" />
<asp:DynamicValidator runat="server" ID="GridViewValidator" ControlToValidate="GridView1" Display="None" CssClass="DDValidator" />
<asp:QueryableFilterRepeater runat="server" ID="FilterRepeater">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("DisplayName") %>' OnPreRender="Label_PreRender" />
<asp:DynamicFilter runat="server" ID="DynamicFilter" OnFilterChanged="DynamicFilter_FilterChanged" /><br />
</ItemTemplate>
</asp:QueryableFilterRepeater>
<br />
</div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource" EnablePersistedSelection="true"
AllowPaging="True" AllowSorting="True" CssClass="DDGridView"
RowStyle-CssClass="td" HeaderStyle-CssClass="th" CellPadding="6">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DynamicHyperLink runat="server" Action="Edit" Text="Edit"
/> <asp:LinkButton runat="server" CommandName="Delete" Text="Delete"
OnClientClick='return confirm("Are you sure you want to delete this item?");'
/> <asp:DynamicHyperLink runat="server" Text="Details" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="DDFooter"/>
<PagerTemplate>
<asp:GridViewPager runat="server" />
</PagerTemplate>
<EmptyDataTemplate>
There are currently no items in this table.
</EmptyDataTemplate>
</asp:GridView>
<asp:EntityDataSource ID="GridDataSource" runat="server" EnableDelete="true" />
<asp:QueryExtender TargetControlID="GridDataSource" ID="GridQueryExtender" runat="server">
<asp:DynamicFilterExpression ControlID="FilterRepeater" />
</asp:QueryExtender>
<br />
<div class="DDBottomHyperLink">
<asp:DynamicHyperLink ID="InsertHyperLink" runat="server" Action="Insert"><img runat="server" src="~/DynamicData/Content/Images/plus.gif" alt="Insert new item" />Insert new item</asp:DynamicHyperLink>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
my vb is below
Imports System.Web.DynamicData
Imports System.Web.Routing
Imports System.Web.UI.WebControls.Expressions
Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Data
Imports System.Collections.Generic
Imports System.Web.UI.Page
Class List
Inherits System.Web.UI.Page
Protected table As MetaTable
Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
table = DynamicDataRouteHandler.GetRequestMetaTable(Context)
GridView1.SetMetaTable(table, table.GetColumnValuesFromRoute(Context))
GridDataSource.EntityTypeFilter = table.EntityType.Name
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
'Title = table.DisplayName
GridDataSource.Include = table.ForeignKeyColumnsNames
' Disable various options if the table is readonly
If table.IsReadOnly Then
GridView1.Columns(0).Visible = False
InsertHyperLink.Visible = False
GridView1.EnablePersistedSelection = False
End If
End Sub
Protected Sub Label_PreRender(ByVal sender As Object, ByVal e As EventArgs)
Dim label = CType(sender, Label)
Dim dynamicFilter = CType(label.FindControl("DynamicFilter"), DynamicFilter)
Dim fuc = CType(dynamicFilter.FilterTemplate, QueryableFilterUserControl)
If fuc IsNot Nothing AndAlso fuc.FilterControl IsNot Nothing Then
label.AssociatedControlID = fuc.FilterControl.GetUniqueIDRelativeTo(label)
End If
End Sub
Protected Overrides Sub OnPreRenderComplete(ByVal e As EventArgs)
Dim routeValues As New RouteValueDictionary(GridView1.GetDefaultValues)
InsertHyperLink.NavigateUrl = table.GetActionPath(PageAction.Insert, routeValues)
' MyBase.OnPreRenderComplete(e)
End Sub
Protected Sub DynamicFilter_FilterChanged(ByVal sender As Object, ByVal e As EventArgs)
GridView1.PageIndex = 0
End Sub
<system.web.services.webmethodattribute(),> _
Public Shared Function GetCompletionList2(prefixText As String, count As Integer, contextKey As String) As String()
Dim connectionString As String = ConfigurationManager.ConnectionStrings("InspConn").ConnectionString
Dim conn As New SqlConnection(connectionString)
' Try to use parameterized inline query/sp to protect sql injection
Dim cmd As New SqlCommand("SELECT lotaddress from [tbl_lat video inspect-Cmaster] where lotaddress like '" & prefixText & "%' order by lotaddress", conn)
Dim oReader As SqlDataReader
conn.Open()
Dim CompletionSet As New List(Of String)()
oReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
While oReader.Read()
CompletionSet.Add(oReader("lotaddress").ToString())
End While
Return CompletionSet.ToArray()
End Function
End Class