I have a page with numerous grids for which drag and drop is enabled to reorder items within the grid. One grid, which I've adapted the code from other working grids, will not refresh the grid on screen even though the codebehind correctly changes the underling data
Below are my *.aspx file and *.vb file -- I've pulled the problematic grid out into it's own file and it persists in misbehaving on its own as well. I've about exhausted my creative ideas for solving the problem.
Any ideas?
Thanks,
Brad Smith
Below are my *.aspx file and *.vb file -- I've pulled the problematic grid out into it's own file and it persists in misbehaving on its own as well. I've about exhausted my creative ideas for solving the problem.
Any ideas?
Thanks,
Brad Smith
Imports System.Data.SqlClientImports Telerik.Web.UIImports dsMeetingDataDatasetTableAdaptersImports dsMeetingDataDatasetImports System.Data.SqlPartial Class _admin_frmTest Inherits System.Web.UI.Page Dim myadapter As New PresentationsTableAdapter Protected Sub PAge_Load() Handles MyBase.Load End Sub Protected Sub rgInterests_itemcommand(ByVal sender As Object, ByVal e As GridCommandEventArgs) 'gets grid item Dim index As Integer = Convert.ToInt32(e.CommandArgument) Dim item As GridDataItem = Me.rgInterests.Items(index) 'gets Session interest ID Dim intSessIntID As Integer = Server.HtmlDecode(item("SessionInterestID").Text) Dim bllSI As New bllSessionsInterests Select Case e.CommandName Case "DeleteMe" 'Me.lblDebug.Text = "Delete Sess Int ID: " & intSessParID bllSI.DeleteSessionInterest(intSessIntID) Me.rgInterests.DataBind() End Select bllSI = Nothing End Sub Protected Sub rgInterests_itemcreated(ByVal sender As Object, ByVal e As GridItemEventArgs) If e.Item.ItemType = GridItemType.AlternatingItem Or e.Item.ItemType = GridItemType.Item Then Dim item As GridDataItem item = e.Item Dim ibtn As ImageButton 'does the delete ibtn = item("Delete").FindControl("ibtnDelete") ibtn.CommandArgument = e.Item.ItemIndex.ToString() End If End Sub Protected Sub rgInterests_itemdatabound(ByVal sender As Object, ByVal e As GridItemEventArgs) If TypeOf e.Item Is GridDataItem Then Dim dataItem As GridDataItem = CType(e.Item, GridDataItem) Dim button As ImageButton = dataItem("Delete").FindControl("ibtnDelete") button.Attributes.Add("onClick", "return confirm('Are you sure you want to remove this interest?');") End If End Sub Protected Sub rgInterests_RowDrop(ByVal sender As Object, ByVal e As GridDragDropEventArgs) If e.DestDataItem IsNot Nothing AndAlso e.DestDataItem.OwnerGridID = rgInterests.ClientID Then 'reorder items in pending grid Dim destItem As Integer = e.DestDataItem.GetDataKeyValue("SessionInterestID") Dim destIndex As Integer = e.DestDataItem.ItemIndex Dim originItem As Integer = e.DraggedItems(0).GetDataKeyValue("SessionInterestID") Dim originIndex As Integer = e.DraggedItems(0).ItemIndex 'do move Dim intSessionID = lblSessionID.Text Dim bllSessionsInterests As New bllSessionsParticipants 'Me.lblDebug.Text = "Move Up for Session Par ID: " & intPresParID & " PresentationID: " & intPresentationID DoMove(originItem, destIndex + 1) DoMove(destItem, originIndex + 1) rgInterests.Rebind() e.DestDataItem.Selected = True End If End Sub Public Sub DoMove(ByVal intIDToMove As Integer, ByVal intOrderFieldValue As Integer) 'loads constring from web.config Dim strConString As String = ConfigurationManager.ConnectionStrings("MeetingDataConnectionString").ConnectionString Dim conData As New SqlConnection(strConString) conData.Open() Dim strSQL As String strSQL = "Update Sessions_Interests set SessionInterestPriority=@neworder where SessionInterestID=@SessIntID;" Dim objCmd As New SqlCommand(strSQL, conData) Dim paramNewOrd As New SqlParameter("@neworder", Data.SqlDbType.Int) paramNewOrd.Value = intOrderFieldValue objCmd.Parameters.Add(paramNewOrd) Dim paramSessIntID As SqlParameter paramSessIntID = New SqlParameter("@SessIntID", Data.SqlDbType.Int) paramSessIntID.Value = intIDToMove objCmd.Parameters.Add(paramSessIntID) Response.Write(objCmd.ExecuteNonQuery()) conData.Close() conData.Dispose() paramNewOrd = Nothing paramSessIntID = Nothing objCmd = Nothing End SubEnd Class<%@ Page Language="VB" AutoEventWireup="false" CodeFile="frmTest.aspx.vb" Inherits="_admin_frmTest" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><!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 id="Head1" runat="server"> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <title>Session form</title></head><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function onInterestRowDropping(sender, args) { if (sender.get_id() == "<%=rgInterests.ClientID %>") { var node = args.get_destinationHtmlElement(); if (!isChildOf('<%=rgInterests.ClientID %>', node) && !isChildOf('<%=rgInterests.ClientID %>', node)) { args.set_cancel(true); } } } function isChildOf(parentId, element) { while (element) { if (element.id && element.id.indexOf(parentId) > -1) { return true; } element = element.parentNode; } return false; } </script></telerik:RadCodeBlock><body class='darkforeclass'> <form id="form2" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX='True' > <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rgInterests"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgInterests" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadGrid ID="rgInterests" runat="server" DataSourceID="sqlDSInterests" GridLines="None" OnItemCommand="rgInterests_itemcommand" OnItemCreated="rgInterests_itemcreated" AllowPaging='True' OnItemDataBound="rgInterests_itemdatabound" OnRowDrop="rgInterests_RowDrop" PagerStyle-AlwaysVisible="False" PageSize='4' Skin="Simple" Width="625px" Height='150px' AutoGenerateColumns="False"> <ClientSettings AllowRowsDragDrop="True"> <Selecting AllowRowSelect="True" EnableDragToSelectRows="False" /> <ClientEvents OnRowDropping="onInterestRowDropping" /> </ClientSettings> <PagerStyle Mode="NextPrevAndNumeric" /> <MasterTableView DataKeyNames="SessionInterestID" Width="100%" GridLines="None"> <NoRecordsTemplate> No Interests listed.</NoRecordsTemplate> <Columns> <telerik:GridBoundColumn DataField="SessionInterestID" DataType="System.Int32" HeaderText="SessionInterestID" ReadOnly="True" SortExpression="SessionInterestID" UniqueName="SessionInterestID" Visible='False'> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="InterestID" DataType="System.Int32" HeaderText="InterestID" SortExpression="InterestID" UniqueName="InterestID" Visible='False'> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SessionInterestPriority" DataType="System.Int32" HeaderText="#" SortExpression="SessionInterestPriority" UniqueName="SessionInterestPriority" Visible='True'> <ItemStyle Width='20px' /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SessionID" DataType="System.Int32" HeaderText="SessionID" SortExpression="SessionID" UniqueName="SessionID" Visible='False'> </telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Interest" SortExpression="Interest" UniqueName="Interest"> <ItemTemplate> <asp:Label ID="lblInterest" runat="server" CssClass='tinylinkclass'><%#Eval("Interest") %></asp:Label> </ItemTemplate> <HeaderStyle Width='550px' /> <ItemStyle HorizontalAlign='left' Width='550px' /> <FooterStyle Width="550px" /> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName='Delete'> <ItemTemplate> <asp:ImageButton ID='ibtnDelete' runat='server' CommandName='DeleteMe' ImageUrl='images/trash.gif' /></td> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <FilterMenu EnableTheming="True" Skin="Hay"> <CollapseAnimation Duration="200" Type="OutQuint" /> </FilterMenu> </telerik:RadGrid> <div class="buttonbarclass"> <asp:LinkButton ID="btnAddSessionInterest" runat="server" CommandName="AddSessionInterest" CssClass="noultinylinkclass"><img style="border:0px;vertical-align:middle;" alt="" src="images/add16.png" /> Add Session Keyword</asp:LinkButton> </div> <telerik:RadWindow ID="rwSessionInterest" runat="server" Behaviors="Close, Move" Height="400px" Left="250px" Modal="true" NavigateUrl="" OffsetElementID="rwSessionInterest" OpenerElementID="<%#btnAddSessionInterest.clientid%>" ReloadOnShow="True" Title="New Session KW" Width="650px"> </telerik:RadWindow> <asp:Label runat='server' ID='lblSessionID' Text='567'></asp:Label> <asp:TextBox ID="tbOrganizationName" runat="server" Visible="False"></asp:TextBox> <asp:TextBox ID="tbOrganizerID" runat="server" Visible="False"></asp:TextBox> <asp:Label runat='server' ID='lblSubmitterID' Visible='false'></asp:Label> <asp:SqlDataSource ID='sqldsInterests' runat='server' ConnectionString="<%$ ConnectionStrings:MeetingDataConnectionString %>" SelectCommand="SELECT Sessions_Interests.SessionInterestID, Sessions_Interests.SessionID, Sessions_Interests.InterestID, Sessions_Interests.SessionInterestPriority, b.interest FROM Sessions_Interests INNER JOIN Interests AS b ON Sessions_Interests.InterestID = b.InterestID WHERE Sessions_Interests.SessionID=@MySessionID ORDER BY Sessions_Interests.SessionInterestPriority"> <SelectParameters> <asp:ControlParameter ControlID="lblSessionID" Name="MySessionID" PropertyName="Text" /> </SelectParameters> </asp:SqlDataSource> </form></body></html>