I am using 11.2 v2125 webdatagrid with a dropdown provider. It works throughout my site except on 1 page I have. In development it works everywhere but on production there is one page that when clicking on the cell the dropdown provider will not display. It acts as though there is no dropdown provider and displays the text editor.
This page has 2 grids; one with a dropdown provider that works and another with a dropdown provider that won't show. It does not work in Chrome, IE, Safari, or Firefox.
I finally traced it down to switching IE9 to compatibility mode will display the dropdown provider. Any clue as to what is going on here? The dropdown provider is wired just like all the other ones that I am using and have been using for months without a problem.
Steve
Hello sperna,
Thank you for contacting Infragistics!
This behavior may be related to CSS. Please let me know there are customized CSS classes being used.
If migration or upgrade is involved, we may verify is the CSS classes' version matches the DLL's.
If the issue persists, we may need more information regarding the application. If possible please attach a copy of the markup, and the events associated with the WebDataGrid.
If you have any questions, please let me know as well.
Thanks for the response Vivian.
There are no custom CSS classes being used. I re-copied all the CSS and images from the default theme over to production to be sure they matched development. I am still having the same issue. The dropdown provider does not work on my 1 page in production but does work in development. The only way it works in production is to switch to IE9 compatibility mode. It won't work in any other browsers.
Thanks,
Good catch Jon. My bad. I usually copy & paste the ids to make sure I don't do something stupid like that.
Hello Steve,
I have looked over your code extensively and after much testing, realized the above code is broken due to a case sensitive misstype. If you look at the following items of the second grid:
<ig:DropDownProvider ID="DropDownProvider20">
....
<ig:DropDownProvider ID="DropDownProvider1">
And then take a look at the binding:
<ig:RowAddingColumnSetting ColumnKey="Field_Service_Line_Number" EditorID="DropdownProvider20" /><ig:RowAddingColumnSetting ColumnKey="Description" EditorID="DropdownProvider1" />
The EditorID's differ by a lower/upper case D on the word down. If you correct the case to match in both places, the issue will be resolved.
Sincerely, Jon Infragistics, Inc. <http://ko.infragistics.com/support/get-help.aspx>
Thank you for sharing.
I am passing this information to our Development Team.
If you have any questions, please let us know as well.
OK after hours and days of frustration I have solved this issue. I don't know why it is intermittent or why it occurs but I am able to fix it.
By changing EditorID="DropdownProvider20" to EditorID="WebDataGrid1_DropdownProvider20" in both referenced tags in the markup the problem disappears! I have no idea why. After the change to my example I posted in this thread it starts working. I also made the change to my project and it worked as well.
In my actual project the Id naming convention I was using on this page was "grdEvents" for the grid and the editor id name was "grdEvents_Dropdownprovider1". This would not work. I kept the grid Id named "grdEvents" and changed the dropdown provider to "WebDataGrid1_Dropdownprovider1" and referenced that new Id and it worked. Before making this change the only way the dropdownprovider worked was in IE9 compatibility mode. All other browsers including IE9 would not show the dropdownprovider when clicking on it. This same naming convention works throughout my site but not on this 1 page until I made the change I just explained.
Very strange and it cost me many many hours of my time...
Vivian-
Upon further investigation I do have the problem in development as well. Apparently IE9 added my local machine to the IE9 Compatibility mode list. Once I turned that it off the problem persists in development as well. I trimmed down an example to reproduce the behavior.
The first grids dropdown provider works fine for all browsers. But the 2nd grid in the markup the dropdown providers do not work in any browser except IE9 with compatibility mode ON. There are no events and they are bare bones grids for demonstration.
You mentioned it could be a CSS issue. Is there a date/timestamp on the CSS that matches with the DLLs I am using? Any help would be greatly appreciated as it's kind of urgent. As always :)
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WorkReport3.aspx.vb" Inherits="Tower.WorkReport3" %>
<%@ Register Assembly="Infragistics35.Web.v11.2, Version=11.2.20112.2125, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.Web.UI.ListControls" TagPrefix="ig" %>
<%@ Register Assembly="Infragistics35.Web.v11.2, Version=11.2.20112.2125, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.Web.UI.GridControls" TagPrefix="ig" %>
<%@ Register Assembly="Infragistics35.Web.jQuery.v11.2, Version=11.2.20112.2125, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.Web.UI.EditorControls" TagPrefix="ig" %>
<%@ Register Assembly="Infragistics35.Web.v11.2, Version=11.2.20112.2125, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" Namespace="Infragistics.Web.UI.EditorControls" TagPrefix="ig" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<ig:WebDataGrid ID="grdWorkTime" runat="server" Height="100px" Width="750px"
AutoGenerateColumns="False" EnableViewState="False"
DataKeyFields="Field_Service_Time_Id">
<Columns>
<ig:BoundDataField DataFieldName="Field_Service_Time_Id" Hidden="True"
Key="Field_Service_Time_Id">
</ig:BoundDataField>
<ig:BoundDataField DataFieldName="Employee_Id" Key="Employee_Id" >
<Header Text="Employee" />
<ig:BoundDataField DataFieldName="Description" Key="Description">
<Header Text="Description" />
</Columns>
<Behaviors>
<ig:Selection RowSelectType="Single">
</ig:Selection>
<ig:ColumnResizing>
</ig:ColumnResizing>
<ig:EditingCore BatchUpdating="false" AutoCRUD="false">
<ig:RowAdding EditModeActions-EnableOnActive="True" EditModeActions-EnableOnKeyPress="True" EditModeActions-MouseClick="Single">
<EditModeActions MouseClick="Single" EnableOnKeyPress="True" EnableOnActive="True" />
<ColumnSettings>
<ig:RowAddingColumnSetting ColumnKey="Employee_Id"
EditorID="grdEmployee_DropDownProvider1" />
<ig:RowAddingColumnSetting ColumnKey="Description"
EditorID="DropDownProvider2" />
</ColumnSettings>
</ig:RowAdding>
<ig:RowDeleting />
</Behaviors>
</ig:EditingCore>
<ig:Activation>
</ig:Activation>
<ig:RowSelectors>
</ig:RowSelectors>
<EditorProviders>
<ig:DropDownProvider ID="grdEmployee_DropDownProvider1">
<EditorControl ID="EditorControl1" DisplayMode="DropDown"
DropDownContainerMaxHeight="200px"
TextField="Employee_Name"
ValueField="Employee_Id"
EnableAnimations="False" runat="server"
EnableCustomValues="false"
DropDownContainerWidth="200px">
<DropDownItemBinding TextField="Employee_Name" ValueField="Employee_Id"></DropDownItemBinding>
<Items>
<ig:DropDownItem selected="False"
text="Steve" value="0">
</ig:DropDownItem>
text="Noah" value="1">
</Items>
</EditorControl>
</ig:DropDownProvider>
<ig:DropDownProvider ID="DropDownProvider2">
<EditorControl ID="EditorControl2" DisplayMode="DropDown"
TextField="Property_Value"
ValueField="System_Property_Id"
<DropDownItemBinding TextField="Property_Value" ValueField="System_Property_Id"></DropDownItemBinding>
<ig:DropDownItem Text="Arrived at job site." Value="0"></ig:DropDownItem>
<ig:DropDownItem Text="Left job site." Value="1"></ig:DropDownItem>
</EditorProviders>
</ig:WebDataGrid>
<ig:WebDataGrid ID="grdTest" runat="server" Height="100px" Width="900px"
AutoGenerateColumns="False" EnableViewState="False" EnableAjaxViewState="true"
DataKeyFields="Field_Service_Line_Number" >
<ig:BoundDataField DataFieldName="Field_Service_Line_Number"
Key="Field_Service_Line_Number">
<Header Text="Field_Service_Line_Number" />
<ig:RowAddingColumnSetting ColumnKey="Field_Service_Line_Number"
EditorID="DropdownProvider20" />
EditorID="DropdownProvider1" />
<EditorControl ID="EditorControl4" DisplayMode="DropDown"
text="Bill" value="1">
<EditorControl ID="EditorControl3" DisplayMode="DropDown"
TextField="Description_Text"
ValueField="Description_Id"
EnableCustomValues="false">
<ig:DropDownItem text="Great Employee" value="1">
<ig:DropDownItem text="Bad Employee" value="2">
</div>
</form>
</body>
</html>
Public Class WorkTime
Private m_intFieldServiceTimeId As Integer
Private m_intEmployeeId As Integer
Private m_strDescription As String
Public Sub New(ByVal intFieldServiceTimeId As Integer, ByVal intEmployeeId As Integer, _
ByVal strDescription As String)
m_strDescription = strDescription
m_intEmployeeId = intEmployeeId
m_intFieldServiceTimeId = intFieldServiceTimeId
End Sub
Public Property Field_Service_Time_Id() As Integer
Get
Return m_intFieldServiceTimeId
End Get
Set(ByVal value As Integer)
m_intFieldServiceTimeId = value
End Set
End Property
Public Property Employee_Id() As Integer
Return m_intEmployeeId
m_intEmployeeId = value
Public Property Description() As String
Return m_strDescription
Set(ByVal value As String)
m_strDescription = value
End Class
Public Class Test
Private m_intFieldServiceLineNumber As Integer
Public Sub New(ByVal intFieldServiceLineNumber As Integer, ByVal strDescription As String)
m_intFieldServiceLineNumber = intFieldServiceLineNumber
Public Property Field_Service_Line_Number() As Integer
Return m_intFieldServiceLineNumber
m_intFieldServiceLineNumber = value
Public Property Description() As Integer
Partial Public Class WorkReport3
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Dim WorkList As IList(Of WorkTime) = New List(Of WorkTime)
Dim objWorkTime As New WorkTime(0, 0, "")
'WorkList.Add(objWorkTime)
grdWorkTime.ClearDataSource()
grdWorkTime.DataKeyFields = "Field_Service_Time_Id"
grdWorkTime.DataSource = WorkList
grdWorkTime.DataBind()
Dim TestList As IList(Of Test) = New List(Of Test)
grdTest.ClearDataSource()
grdTest.DataKeyFields = "Field_Service_Line_Number"
grdTest.DataSource = TestList
grdTest.DataBind()
Catch ex As Exception
Dim i As Integer = 1
MsgBox("An error occured in page_load: " & ex.Message)
End Try