I have a page with 2 grids on it.When you select a row on the first grid, a second grid related to the row is created. I use javascript to select the row and then call the radajaxmanager to rebind the second grid. I also have an insert button on the first grid. I have the radajaxmanager updating both grids. When I have the ajaxmanager updating both grids, the selected row does not remain highlighted. If I remove from the ajax manager, then after inserting a new record in the first grid, it does not rebind to show the new record. Here is my code:
function rowSelected(sender, eventArgs) { |
var dataItem = $get(eventArgs.get_id()); |
var grid = sender; |
var MasterTable = grid.get_masterTableView(); |
var row = MasterTable.get_dataItems()[eventArgs.get_itemIndexHierarchical()]; |
var id = MasterTable.getCellByColumnUniqueName(row, "package_id").innerHTML; |
var description = MasterTable.getCellByColumnUniqueName(row, "descriptions").innerHTML; |
var packageIDtxtbox = document.getElementById("packageID"); |
packageIDtxtbox.value = id; |
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("PackageContents"); |
} |
function EditPackageContents() { |
var packageIDtxtbox = document.getElementById("packageID"); |
if (packageIDtxtbox != null) { |
var pID = packageIDtxtbox.value; |
var oWnd = window.radopen("entitlements.aspx?pID=" + pID +"&price=Y", "entitlements"); |
oWnd.add_close(OnClientCloseEditContents); |
var oArg = new Object(); |
//set the arguments that will be needed on the way back so they are not undefined |
oWnd.argument = oArg; |
return false; |
} |
return false; |
} |
function OnClientCloseEditContents(oWnd) { |
// rebind the buildPackageGrid |
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("PackageContents"); |
} |
function GetRadWindow() { |
var oWindow = null; |
if (window.radWindow) oWindow = window.radWindow; |
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; |
return oWindow; |
} |
function ShowInsertForm() { |
var oWnd = window.radopen("editPackageForm.aspx", "packageDialog"); |
oWnd.setSize(800, 300); |
oWnd.center(); |
//set a function to be called when RadWindow is closed |
oWnd.add_close(OnClientCloseEdit); |
var oArg = new Object(); |
oArg.packageID = -99; |
//set the arguments that will be needed on the way back so they are not undefined |
oWnd.argument = oArg; |
return false; |
} |
function ShowEditForm(id, rowIndex) { |
var grid = $find("<%= packageGrid.ClientID %>"); |
var rowControl = grid.get_masterTableView().get_dataItems()[rowIndex].get_element(); |
grid.get_masterTableView().selectItem(rowControl, true); |
var oWnd = window.radopen("editPackageForm.aspx?packageID=" + id, "packageDialog"); |
oWnd.setSize(800, 300); |
oWnd.center(); |
oWnd.add_close(OnClientCloseEdit); |
var oArg = new Object(); |
oArg.packageID = id; |
//set the arguments that will be needed on the way back so they are not undefined |
oWnd.argument = oArg; |
return false; |
} |
function OnClientCloseEdit(oWnd) { |
//get the transferred arguments |
var packageID = oWnd.argument.packageID; |
if (packageID != -99) { |
// rebind grid |
var txtBoxPackageID = document.getElementById("packageID"); |
txtBoxPackageID.value = packageID; |
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("PackageEdit"); |
} |
} |
</script> |
</telerik:RadScriptBlock> |
<div> |
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" |
onajaxrequest="RadAjaxManager1_AjaxRequest" |
DefaultLoadingPanelID="RadAjaxLoadingPanel1"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="packageGrid" /> |
<telerik:AjaxUpdatedControl ControlID="outdatedPackageGrid" /> |
<telerik:AjaxUpdatedControl ControlID="buildPackageGrid" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
<telerik:AjaxSetting AjaxControlID="packageID"> |
</telerik:AjaxSetting> |
<telerik:AjaxSetting AjaxControlID="mainSplitter"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="mainSplitter" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="75px" Width="75px" Transparency="10"> |
<img alt="Loading..." src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>' |
style="border: 0px;" /> |
</telerik:RadAjaxLoadingPanel> |
<telerik:RadSplitter ID= "mainSplitter" runat="server" Orientation="Vertical" ResizeMode="AdjacentPane" width="100%" |
VisibleDuringInit="false" Height="100%" ResizeWithParentPane="true"> |
<telerik:RadPane id="leftPane" runat="server" width="22" minwidth="22" Scrolling="none"> |
<telerik:RadSlidingZone id="SlidingZone1" runat="server" clicktoopen="true" DockedPaneId="sPackages" ExpandedPaneId="sPackages" > |
<telerik:RadSlidingPane id="sPackages" title="Packages" runat="server" width="215" Scrolling="Both" EnableResize="false" > |
<telerik:RadGrid ID="packageGrid" runat="server" Width="200px" OnItemDataBound="RadGrid1_ItemDataBound" |
DataSourceID="SqlDataSourcePackages" AutoGenerateColumns="False" OnItemCreated="packagesGrid_ItemCreated" |
GridLines="None" AllowFilteringByColumn="True" AllowPaging="True" > |
<GroupingSettings CaseSensitive="false" /> |
<ClientSettings> |
<Selecting AllowRowSelect="true" EnableDragToSelectRows="true" /> |
<ClientEvents OnRowSelected="rowSelected" /> |
</ClientSettings> |
<HeaderContextMenu EnableTheming="True"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</HeaderContextMenu> |
<MasterTableView CommandItemDisplay="Top" DataKeyNames="package_id" PageSize="25"> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px" /> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px" /> |
</ExpandCollapseColumn> |
<CommandItemTemplate > |
<div style="padding:10px 5px;"> |
<asp:LinkButton runat="server" id="addButton" OnClientClick="return ShowInsertForm(); return false;" > |
<img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.gif" />Add new package</asp:LinkButton> |
|
</div> |
</CommandItemTemplate> |
<CommandItemSettings AddNewRecordText="Add new package" /> |
<Columns> |
<telerik:GridTemplateColumn AllowFiltering="false" > |
<HeaderStyle Width="20px" /> |
<ItemTemplate> |
<asp:imagebutton ID="EditPackageLink" runat="server" Text="Edit Package" src="Images/Edit.gif" ToolTip="Edit"></asp:imagebutton> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridBoundColumn DataField="package_id" Display="false" |
UniqueName="package_id"> |
</telerik:GridBoundColumn> |
<telerik:GridTemplateColumn UniqueName="packageName" HeaderText="Package Name" > |
<ItemTemplate> |
<asp:Label ID="package_name" runat="server" Text='<%#Eval("package_name") %>'></asp:Label> |
<telerik:RadToolTip runat="server" ID="RadToolTip2" TargetControlID="package_name" |
Skin="Web20" ShowDelay="1000" AutoCloseDelay="200000" Font-Names="arial" |
Font-Size="XX-Large" BorderStyle="Inset" HideDelay="100000" ManualClose="False" |
Position="BottomRight" Sticky="True" Width="300"><asp:Label runat="server" ID="Label111" Font-Bold="true" TabIndex="2" Text='<%#Eval("descriptions") %>' ></asp:Label><br/> |
</telerik:RadToolTip> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridBoundColumn DataField="descriptions" Display="false" |
UniqueName="descriptions"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="do_not_delete" Display="false" |
UniqueName="do_not_delete"> |
</telerik:GridBoundColumn> |
<telerik:GridDateTimeColumn DataField="start_date" Display="false" UniqueName="start_date"></telerik:GridDateTimeColumn> |
<telerik:GridDateTimeColumn DataField="end_date" Display="false" UniqueName="end_date"></telerik:GridDateTimeColumn> |
<telerik:GridBoundColumn DataField="active" Display="false" UniqueName="active"></telerik:GridBoundColumn> |
<telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" |
ConfirmDialogType="RadWindow" ConfirmText="Delete this package?" |
ConfirmTitle="Delete" Text="Delete" UniqueName="DeleteCol"> |
</telerik:GridButtonColumn> |
</Columns> |
</MasterTableView> |
<FilterMenu EnableTheming="True"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</FilterMenu> |
</telerik:RadGrid> |
<br /><br /> |
<asp:Label runat="server" Text="Show outdated packages" AssociatedControlID="outdatedCB" ></asp:Label><asp:CheckBox runat="server" ID="outdatedCB" OnCheckedChanged="outdatedChanged" AutoPostBack="true" /> |
<telerik:RadGrid ID="outdatedPackageGrid" runat="server" Width="200px" OnItemDataBound="RadGrid1_ItemDataBound" |
DataSourceID="SqlDataSourceOutdatedPackages" AutoGenerateColumns="False" OnItemCreated="packagesGrid_ItemCreated" |
GridLines="None" AllowFilteringByColumn="True" AllowPaging="True" Visible="false" > |
<GroupingSettings CaseSensitive="false" /> |
<ClientSettings> |
<Selecting AllowRowSelect="true" EnableDragToSelectRows="true" /> |
<ClientEvents OnRowSelected="rowSelectedOutdated" /> |
</ClientSettings> |
<HeaderContextMenu EnableTheming="True"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</HeaderContextMenu> |
<MasterTableView CommandItemDisplay="Top" DataKeyNames="package_id"> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px" /> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px" /> |
</ExpandCollapseColumn> |
<CommandItemTemplate > |
<div style="padding:10px 5px;"> |
Outdated Packages |
|
</div> |
</CommandItemTemplate> |
<CommandItemSettings AddNewRecordText="Add new package" /> |
<Columns> |
<telerik:GridTemplateColumn AllowFiltering="false" > |
<HeaderStyle Width="20px" /> |
<ItemTemplate> |
<asp:imagebutton ID="EditPackageLink" runat="server" Text="Edit Package" src="Images/Edit.gif" ToolTip="Edit"></asp:imagebutton> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridBoundColumn DataField="package_id" Display="false" |
UniqueName="package_id"> |
</telerik:GridBoundColumn> |
<telerik:GridTemplateColumn UniqueName="packageName" HeaderText="Package Name" > |
<ItemTemplate> |
<asp:Label runat="server" ID="package_name" Text='<%#Eval("package_name") %>'></asp:Label> |
<telerik:RadToolTip runat="server" ID="RadToolTip2" TargetControlID="package_name" |
Skin="Web20" ShowDelay="1000" AutoCloseDelay="200000" Font-Names="arial" |
Font-Size="XX-Large" BorderStyle="Inset" HideDelay="100000" ManualClose="False" |
Position="BottomRight" Sticky="True" Width="300"><asp:Label runat="server" ID="Label111" Font-Bold="true" TabIndex="2" Text='<%#Eval("descriptions") %>' ></asp:Label><br/> |
</telerik:RadToolTip> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridBoundColumn DataField="descriptions" Display="false" |
UniqueName="descriptions"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="do_not_delete" Display="false" |
UniqueName="do_not_delete"> |
</telerik:GridBoundColumn> |
<telerik:GridDateTimeColumn DataField="start_date" Display="false" UniqueName="start_date"></telerik:GridDateTimeColumn> |
<telerik:GridDateTimeColumn DataField="end_date" Display="false" UniqueName="end_date"></telerik:GridDateTimeColumn> |
<telerik:GridBoundColumn DataField="active" Display="false" UniqueName="active"></telerik:GridBoundColumn> |
<telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" |
ConfirmDialogType="RadWindow" ConfirmText="Delete this package?" |
ConfirmTitle="Delete" Text="Delete" UniqueName="DeleteCol"> |
</telerik:GridButtonColumn> |
</Columns> |
</MasterTableView> |
<FilterMenu EnableTheming="True"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</FilterMenu> |
</telerik:RadGrid> |
</telerik:RadSlidingPane> |
</telerik:RadSlidingZone> |
</telerik:RadPane> |
<telerik:RadSplitBar id="Radsplitbar3" runat="server" collapsemode="Forward" /> |
<telerik:RadPane id="contentPane" runat="server" Scrolling="Y" > |
<telerik:RadAjaxPanel ID="Panel1" runat="server" BackColor="White"> |
<div id="PackageForm" runat="server" > |
<table runat="server" id="totalBar" > |
<tr> |
<td colspan="3"> |
<table cellpadding="0" cellspacing="0" class="style15" > |
<tr> |
<td> |
</td><td> |
</td><td> |
</td><td> |
</td><td> |
</td><td> |
</td></tr></table></td></tr><tr> |
<td class="style13"> |
</td><td class="style14"> |
</td> |
<td class="style13"> |
</td> |
</tr> |
<tr> |
<td class="style2"> |
</td> |
<td class="style3" colspan="2"> |
<telerik:RadGrid ID="buildPackageGrid" runat="server" visible="false" |
AllowFilteringByColumn="True" AllowPaging="True" |
DataSourceID="SqlDataSourceselectPackage" GridLines="None" OnDataBound="buildPackageGrid_dataBound" |
OnItemDataBound="build_ItemDataBound" OnPreRender="buildPackageGrid_preRender" |
Width="633px"> |
<HeaderContextMenu EnableTheming="True"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</HeaderContextMenu> |
<GroupingSettings CaseSensitive="false" /> |
<MasterTableView runat="server" AutoGenerateColumns="False" CommandItemDisplay="Top" |
DataKeyNames="mid_id,mid_type_id" PageSize="12"> |
<GroupByExpressions> |
<telerik:GridGroupByExpression> |
<GroupByFields> |
<telerik:GridGroupByField FieldName="mid_type_name" SortOrder="Descending" /> |
</GroupByFields> |
<SelectFields> |
<telerik:GridGroupByField FieldAlias="mid_type_name" FieldName="mid_type_name" |
HeaderText="Mid type" /> |
</SelectFields> |
</telerik:GridGroupByExpression> |
</GroupByExpressions> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px" /> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px" /> |
</ExpandCollapseColumn> |
<CommandItemTemplate > |
<div style="padding:10px 5px;"> |
<asp:LinkButton runat="server" id="editButton" OnClientClick="return EditPackageContents(); return false;" > |
<img style="border:0px;vertical-align:middle;" alt="" src="Images/Edit.gif" />Edit package contents</asp:LinkButton> |
</div> |
</CommandItemTemplate> |
<CommandItemSettings AddNewRecordText="Edit package contents" /> |
<Columns> |
<telerik:GridBoundColumn DataField="mid_id" Display="false" UniqueName="mid_id"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="mid_type_id" Display="false" |
UniqueName="mid_type_id"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="mid_name" HeaderText="Package Contents" |
UniqueName="mid_name"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="package_name" Display="false" |
HeaderText="Package Name" SortExpression="package_name" |
UniqueName="package_name"> |
</telerik:GridBoundColumn> |
<custom:MyCustomFilteringColumnMidTypes DataField="mid_type_name" HeaderText="Mid Types"> |
<headerstyle width="100px" /> |
<itemtemplate> |
<%# Eval("mid_type_name")%> |
</itemtemplate> |
</custom:MyCustomFilteringColumnMidTypes> |
<telerik:GridBoundColumn DataField="mid_type_name" HeaderText="Mid type" |
SortExpression="mid_type_name" UniqueName="mid_type_name"> |
</telerik:GridBoundColumn> |
<telerik:GridNumericColumn DataField="price" UniqueName="price" ></telerik:GridNumericColumn> |
<telerik:GridNumericColumn DataField="asking_price" UniqueName="asking_price" ></telerik:GridNumericColumn> |
</Columns> |
<PagerStyle Mode="NextPrevAndNumeric" /> |
</MasterTableView> |
<FilterMenu EnableTheming="True"> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</FilterMenu> |
</telerik:RadGrid> |
</td> |
<td> |
</td></tr><tr> |
<td class="style2"> |
</td><td class="style3"> |
</td><td class="style1"> |
</td></tr></table></div></telerik:RadAjaxPanel></telerik:RadPane></telerik:RadSplitter><asp:TextBox ID="packageID" runat="server" Visible="true" Width="0" Height="0" |
style="border: 0px solid #b0c4de;background-color:#b0c4de;"></asp:TextBox><asp:TextBox ID="packageName" runat="server" Visible="true" Width="0" Height="0" |
style="border: 0px solid #b0c4de;background-color:#b0c4de;"></asp:TextBox><telerik:RadNumericTextBox ID="totalPackagePrice" runat="server" Value="0" ></telerik:RadNumericTextBox> |
<telerik:RadNumericTextBox ID="totalOurCost" runat="server" Value="0" ></telerik:RadNumericTextBox> |
<asp:SqlDataSource ID="SqlDataSourcePackages" runat="server" |
ConnectionString="<%$ ConnectionStrings:CC2ConnectionString2 %>" |
SelectCommand="SELECT package_id, package_name, package_cd, mid_id, descriptions, last_changed_by, date_created, date_last_changed, do_not_delete, start_date, end_date, active FROM PACKAGES WHERE (end_date IS NULL) OR (end_date >= GETDATE())"></asp:SqlDataSource> |
<asp:SqlDataSource ID="SqlDataSourceOutdatedPackages" runat="server" |
ConnectionString="<%$ ConnectionStrings:CC2ConnectionString2 %>" |
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) |
{ |
if ("PackageEdit" == e.Argument) |
{ |
packageGrid.Rebind(); |
if (outdatedPackageGrid.Visible == true) |
outdatedPackageGrid.Rebind(); |
} |
else if ("PackageContents" == e.Argument) |
{ |
buildPackageGrid.Visible = true; |
buildPackageGrid.Rebind(); |
} |
} |