<%
@ Page Title="" Language="VB" MasterPageFile="~/secure/Institution.master" AutoEventWireup="false" CodeFile="Exams.aspx.vb" Inherits="secure_Exams" %>
<%
@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<
asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadGrid ID="radExams" runat="server" GridLines="None">
<
MasterTableView datakeynames="ExamID">
<
RowIndicatorColumn>
<
HeaderStyle Width="20px"></HeaderStyle>
</
RowIndicatorColumn>
<
ExpandCollapseColumn>
<
HeaderStyle Width="20px"></HeaderStyle>
</
ExpandCollapseColumn>
<Columns>
<telerik:GridButtonColumn CommandName="Select" Text="Select"
UniqueName="column1">
</telerik:GridButtonColumn>
<telerik:GridEditCommandColumn>
</telerik:GridEditCommandColumn>
<telerik:GridButtonColumn CommandName="Delete" Text="Delete"
UniqueName="column">
</telerik:GridButtonColumn>
</Columns>
</
MasterTableView>
</telerik:RadGrid>
<asp:Panel ID="pnlDetails" runat="server">
<telerik:RadTabStrip ID="RadTabStrip1" SelectedIndex="0"
runat="server" MultiPageID="RadMultiPage1" Skin="Office2007"
Orientation="HorizontalBottom" ClickSelectedTab="True">
</telerik:RadTabStrip>
<telerik:RadMultiPage ID="RadMultiPage1" Runat="server" SelectedIndex="0"
RenderSelectedPageOnly="True">
</telerik:RadMultiPage>
</asp:Panel>
<telerik:RadAjaxManager runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="radExams">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="radExams" />
<telerik:AjaxUpdatedControl ControlID="pnlDetails" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadTabStrip1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="pnlDetails" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
</
asp:Content>
Protected
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
AddTab(
"ExamRatings")
AddPageView(RadTabStrip1.FindTabByText(
"ExamRatings"))
AddTab(
"ExamEvents")
AddTab(
"ExamNotes")
End If
End Sub
Private Sub AddTab(ByVal tabName As String)
Dim tab As RadTab = New RadTab
tab.Text = tabName
RadTabStrip1.Tabs.Add(tab)
End Sub
Protected Sub RadMultiPage1_PageViewCreated(ByVal sender As Object, ByVal e As RadMultiPageEventArgs) Handles RadMultiPage1.PageViewCreated
Dim userControlName As String = e.PageView.ID & ".ascx"
Dim userControl As Control = Page.LoadControl(userControlName)
userControl.ID = e.PageView.ID &
"_userControl"
e.PageView.Controls.Add(userControl)
End Sub
Private Sub AddPageView(ByVal tab As RadTab)
If Not RadMultiPage1.FindPageViewByID(tab.Text) Is Nothing Then
Exit Sub
End If
Dim pageView As RadPageView = New RadPageView
pageView.ID = tab.Text
RadMultiPage1.PageViews.Add(pageView)
pageView.CssClass =
"pageView"
tab.PageViewID = pageView.ID
End Sub
Protected Sub RadTabStrip1_TabClick(ByVal sender As Object, ByVal e As RadTabStripEventArgs) Handles RadTabStrip1.TabClick
AddPageView(e.Tab)
e.Tab.PageView.Selected =
True
End Sub
'Master grid select event to identify the datakeyvalue
Protected
Sub radExams_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles radExams.ItemCommand
Select Case e.CommandName
Case RadGrid.SelectCommandName
Dim editedItem As GridEditableItem = CType(e.Item, GridEditableItem)
Session(
"ExamID") = editedItem.OwnerTableView.DataKeyValues(editedItem.ItemIndex)("ExamID").ToString
End Select
Protected
ReadOnly Property ExamEventsData() As DataTable
Get
Dim aExamEventsData As DataTable
aExamEventsData = aDFICISObj.GetExamEvents(Session(
"ExamID"))
Return aExamEventsData
End Get
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.radExamEvents.Rebind()
End Sub
Protected Sub radExamEvents_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles radExamEvents.NeedDataSource
Me.radExamEvents.DataSource = ExamEventsData
End Sub
Hi,
I have implimented a grid using webservices for client-side binding. I created an additional method that allows me to update rows via the webservice as well. Upon recipt of successful update, the grid is supposed to rebind. This only seems to work if clientside caching is disabled. Is this a bug - or is there a clientside method/property I can call to clear the cache?
Thanks,
Kent
| <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> | |
| <script type="text/javascript"> | |
| function RowSelected(sender, eventArgs) | |
| { | |
| //Enable the update tab | |
| var tabStrip= $find("<%= RadTabStrip1.ClientID %>"); | |
| var tab = tabStrip.findTabByText("Update"); | |
| tab.set_enabled(true); | |
| //Get references to the input fields | |
| var costCenterGID = document.getElementById("<%= costCenterGID.ClientID %>"); | |
| var costCenterNo = $find("<%= costCenterNo.ClientID %>"); | |
| var costCenterDesc = $find("<%= costCenterDesc.ClientID %>"); | |
| costCenterGID.innerHTML = eventArgs.getDataKeyValue("CostCenterGID"); | |
| costCenterNo.set_value(eventArgs.getDataKeyValue("CostCenterNo")); | |
| costCenterDesc.set_value(eventArgs.getDataKeyValue("CostCenterDesc")); | |
| } | |
| function RowUpdate() | |
| { | |
| //Get references to the input fields | |
| var costCenterGIDctrl = document.getElementById("<%= costCenterGID.ClientID %>"); | |
| var costCenterDescctrl = $find("<%= costCenterDesc.ClientID %>"); | |
| //Get the values | |
| var costCenterGID = costCenterGIDctrl.innerHTML; | |
| var costCenterDesc = costCenterDescctrl.get_value(); | |
| //Invoke the webservice to update | |
| Caspr.WebServices.accountingUnitsWebService.UpdateData(costCenterGID, costCenterDesc, UpdateSucceededCallback); | |
| } | |
| function UpdateSucceededCallback(result, eventArgs) | |
| { | |
| alert("Updated? " + result); | |
| if (result) | |
| { | |
| RefreshGrid(); | |
| } | |
| } | |
| function RefreshGrid() | |
| { | |
| var masterTable = $find("<%= auGrid.ClientID %>").get_masterTableView(); | |
| masterTable.rebind(); | |
| } | |
| </script> | |
| </telerik:RadScriptBlock> |
| <ClientSettings> | |
| <DataBinding Location="http://localhost/dnn/DesktopModules/Caspr/Webservices/accountingUnitsWebService.asmx" | |
| SelectMethod="GetData" | |
| CountPropertyName="Count" | |
| DataPropertyName="Data" | |
| FilterParameterType="Linq" | |
| SortParameterType="Linq" | |
| EnableCaching="true" /> | |
| <Selecting AllowRowSelect="true" /> | |
| <ClientEvents | |
| OnRowSelected="RowSelected" | |
| /> | |
| </ClientSettings> |