or
Protected Sub lbSchedApt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbSchedApt.Click |
Dim jScript As String = [String].Format("openNewWindow('{0}', '{1}');", schedQID, ddlEvaluators.SelectedValue) |
Page.ClientScript.RegisterStartupScript(Me.GetType(), "ClientScript", jScript, True) |
End Sub |
function openNewWindow(schedQueueID, evaluatorID) { |
window.radopen("ScheduleAppointment.aspx?ScheduleQueueID=" + schedQueueID + "&EvaluatorID=" + evaluatorID, "SchedAppt"); |
return false; |
} |
<asp:linkbutton ID="lbSchedApt" runat="server">Make Appointment</asp:linkbutton> |
hlSchedApt.Attributes("href") = "#" |
hlSchedApt.Attributes("onclick") = [String].Format("return openNewWindow('{0}', '{1}');", datarow.Row.ItemArray(8).ToString(), ddlEvaluators.SelectedValue) |
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<
asp:Content
ID
=
"HeaderContent"
runat
=
"server"
ContentPlaceHolderID
=
"HeadContent"
>
</
asp:Content
>
<
asp:Content
ID
=
"BodyContent"
runat
=
"server"
ContentPlaceHolderID
=
"MainContent"
>
<
asp:Panel
runat
=
"server"
Width
=
"968px"
>
<
div
style
=
"height: 20px"
></
div
>
<
div
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowSorting
=
"True"
AutoGenerateColumns
=
"False"
CellSpacing
=
"0"
GridLines
=
"None"
>
<
ClientSettings
>
<
Resizing
AllowColumnResize
=
"True"
ResizeGridOnColumnResize
=
"False"
></
Resizing
>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
SaveScrollPosition
=
"True"
></
Scrolling
>
</
ClientSettings
>
<
MasterTableView
>
<
Columns
>
<
telerik:GridBoundColumn
FilterControlAltText
=
"Filter column column"
EmptyDataText
=
""
HeaderText
=
"Col1"
UniqueName
=
"column1"
>
<
HeaderStyle
Width
=
"150px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlAltText
=
"Filter column1 column"
HeaderText
=
"Col2"
UniqueName
=
"column2"
>
<
HeaderStyle
Width
=
"150px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlAltText
=
"Filter column2 column"
HeaderText
=
"Col3"
UniqueName
=
"column3"
>
<
HeaderStyle
Width
=
"150px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlAltText
=
"Filter column3 column"
HeaderText
=
"Col4"
UniqueName
=
"column4"
EmptyDataText
=
""
>
<
HeaderStyle
Width
=
"150px"
/>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
<
div
style
=
"height: 20px"
></
div
>
</
asp:Panel
>
</
asp:Content
>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
public class ObjetDataRow
{
public string Colonne1 { get; set; }
public string Colonne2 { get; set; }
public string Colonne3 { get; set; }
public string Colonne4 { get; set; }
}
private IList<
ObjetDataRow
> datas { get; set; }
protected void LoadData()
{
if (datas == null)
{
datas = new List<
ObjetDataRow
>
{
new ObjetDataRow()
{
Colonne1 = "Row1Colonne1",
Colonne2 = "Row1Colonne2",
Colonne3 = "Row1Colonne3",
Colonne4 = "Row1Colonne4"
},
new ObjetDataRow()
{
Colonne1 = "Row2Colonne1",
Colonne2 = "Row2Colonne2",
Colonne3 = "Row2Colonne3",
Colonne4 = "Row2Colonne4"
},
new ObjetDataRow()
{
Colonne1 = "Row3Colonne1",
Colonne2 = "Row3Colonne2",
Colonne3 = "Row3Colonne3",
Colonne4 = "Row3Colonne4"
},
new ObjetDataRow()
{
Colonne1 = "Row4Colonne1",
Colonne2 = "Row4Colonne2",
Colonne3 = "Row4Colonne3",
Colonne4 = "Row4Colonne4"
}
};
}
RadGrid1.ClientSettings.Scrolling.ScrollHeight = new Unit();
}
protected void Page_Load(object sender, EventArgs e)
{
LoadData();
if (!IsPostBack)
{
RadGrid1.DataSource = datas;
}
}
}
This is the radwindowmanager in the mser page that both pages within the radwindows inherit.
<
telerik:RadWindowManager
ID
=
"RadWindowManager"
runat
=
"server"
EnableShadow
=
"true"
Style
=
"z-index: 2"
>
<
Windows
>
<
telerik:RadWindow
runat
=
"server"
ID
=
"fullWindow"
EnableShadow
=
"false"
VisibleStatusbar
=
"false"
CssClass
=
"fullWindowClass"
Behaviors
=
"Close"
ReloadOnShow
=
"true"
ShowContentDuringLoad
=
"false"
OnClientBeforeShow
=
"fullWindow_BeforeShow"
OnClientClose
=
"fullWindow_OnClose"
/>
<
telerik:RadWindow
runat
=
"server"
ID
=
"smallWindow"
EnableShadow
=
"false"
VisibleStatusbar
=
"false"
Modal
=
"true"
Behaviors
=
"Close"
ReloadOnShow
=
"true"
ShowContentDuringLoad
=
"false"
Width
=
"600"
Height
=
"390"
BackColor
=
"#FFFFFF"
/>
<
telerik:RadWindow
runat
=
"server"
ID
=
"lmsWindow"
EnableShadow
=
"false"
VisibleStatusbar
=
"true"
VisibleTitlebar
=
"true"
Behaviors
=
"Close,Resize"
ReloadOnShow
=
"true"
ShowContentDuringLoad
=
"false"
OnClientBeforeShow
=
"fullWindow_BeforeShow"
/>
</
Windows
>
</
telerik:RadWindowManager
>
<
telerik:RadAjaxManagerProxy
ID
=
"ajaxManagerProxy"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"AjaxManager"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rightPane"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"grid"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"AjaxManager"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"tvSlideGroups"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rightPane"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManagerProxy
>
<
telerik:RadSplitter
runat
=
"server"
ID
=
"imageSplitter"
Width
=
"100%"
Height
=
"100%"
LiveResize
=
"true"
SplitBarsSize
=
"5px"
VisibleDuringInit
=
"false"
ResizeMode
=
"EndPane"
CssClass
=
"image_splitter"
ResizeWithParentPane
=
"false"
OnClientLoaded
=
"ResizeImageSplitter"
OnClientResized
=
"ResizeImageSplitter"
>
<
telerik:RadPane
runat
=
"server"
Width
=
"250"
MinWidth
=
"250"
ID
=
"imageSplitterLeftPane"
CssClass
=
"threecolumn_pane"
>
<
div
class
=
"treeview"
style
=
"height: 97%;"
>
<
ds:AnnotatedImageFolderControl
runat
=
"server"
ID
=
"annotatedImageFolderControl"
/>
</
div
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitBar1"
runat
=
"server"
CollapseMode
=
"Forward"
CollapseExpandPaneText
=
"Expand/Collapse"
/>
<
telerik:RadPane
runat
=
"server"
ID
=
"imageSplitterRightPane"
CssClass
=
"threecolumn_pane"
>
<
asp:Panel
runat
=
"server"
ID
=
"rightPane"
>
<
div
id
=
"imagecontentpane"
>
<
div
id
=
"listheader"
>
<
h2
>Annotated Images</
h2
>
<
div
id
=
"listActions"
>
<
telerik:RadButton
ID
=
"btnCreateAnnotatedImage"
runat
=
"server"
AutoPostBack
=
"false"
Text
=
"Create Annotated Image"
Enabled
=
"true"
OnClientClicked
=
"ShowAddNewForm"
/>
</
div
>
</
div
>
<
div
id
=
"listcontainer"
style
=
"margin-left: 10px; margin-right: 10px;"
>
<
telerik:RadGrid
ID
=
"grid"
runat
=
"server"
DataSourceID
=
"ocdsSlides"
AllowPaging
=
"False"
AllowSorting
=
"True"
AutoGenerateColumns
=
"False"
CellSpacing
=
"0"
GridLines
=
"None"
PageSize
=
"50"
ShowGroupPanel
=
"true"
OnColumnCreated
=
"grid_ColumnCreated"
OnItemCreated
=
"grid_ItemCreated"
OnItemCommand
=
"grid_ItemCommand"
OnBiffExporting
=
"grid_BiffExporting"
>
<
ClientSettings
ClientEvents-OnGridCreated
=
"grid_created"
EnableRowHoverStyle
=
"true"
AllowDragToGroup
=
"true"
AllowColumnsReorder
=
"true"
>
<
Scrolling
AllowScroll
=
"true"
UseStaticHeaders
=
"True"
/>
</
ClientSettings
>
<
ExportSettings
ExportOnlyData
=
"true"
IgnorePaging
=
"true"
HideStructureColumns
=
"true"
FileName
=
"AnnotatedImages"
>
<
Excel
Format
=
"Biff"
/>
</
ExportSettings
>
<
MasterTableView
DataKeyNames
=
"SlideId"
CommandItemDisplay
=
"Top"
CommandItemSettings-ShowRefreshButton
=
"true"
CommandItemSettings-ShowExportToExcelButton
=
"true"
CommandItemSettings-ShowAddNewRecordButton
=
"false"
>
<
Columns
>
<
telerik:GridImageColumn
DataImageUrlFields
=
"ImageId"
HeaderText
=
"THUMBNAIL"
Reorderable
=
"false"
UniqueName
=
"ThumbnailColumn"
ImageHeight
=
"50"
ImageWidth
=
"50"
HeaderStyle-Width
=
"80"
ItemStyle-Width
=
"80"
HeaderStyle-HorizontalAlign
=
"Center"
AlternateText
=
"Preview"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"SlideId"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"SlideName"
HeaderText
=
"Name"
ItemStyle-Wrap
=
"true"
HeaderStyle-Width
=
"200"
ItemStyle-Width
=
"200"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Left"
/>
<
telerik:GridBoundColumn
DataField
=
"FolderName"
HeaderText
=
"Folder Name"
ItemStyle-Wrap
=
"true"
HeaderStyle-Width
=
"200"
ItemStyle-Width
=
"200"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Left"
/>
<
telerik:GridTemplateColumn
HeaderText
=
"ACTIONS"
UniqueName
=
"Actions"
HeaderStyle-Width
=
"130"
ItemStyle-Width
=
"130"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
>
<
ItemTemplate
>
<
div
style
=
"text-align: center;"
>
<
asp:HyperLink
runat
=
"server"
ID
=
"lnkManage"
Text
=
"Manage"
NavigateUrl
=
"#"
/> |
<
asp:HyperLink
runat
=
"server"
ID
=
"lnkPreview"
Text
=
"Preview"
NavigateUrl
=
"#"
/>
</
div
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"ImageName"
HeaderText
=
"Source Image Name"
ItemStyle-Wrap
=
"true"
HeaderStyle-Width
=
"190"
ItemStyle-Width
=
"200"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Left"
/>
<
telerik:GridBoundColumn
DataField
=
"Revision"
HeaderText
=
"Revision"
HeaderStyle-Width
=
"60"
ItemStyle-Width
=
"55"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"RevisionDate"
HeaderText
=
"Revision Date"
HeaderStyle-Width
=
"80"
ItemStyle-Width
=
"80"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
DataFormatString
=
"{0:MM/dd/yyyy}"
/>
<
telerik:GridBoundColumn
DataField
=
"Levels"
HeaderText
=
"Z-Planes"
HeaderStyle-Width
=
"70"
ItemStyle-Width
=
"65"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"RegionOfInterestCount"
HeaderText
=
"ROIs"
HeaderStyle-Width
=
"45"
ItemStyle-Width
=
"50"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"PinCount"
HeaderText
=
"Pins"
HeaderStyle-Width
=
"50"
ItemStyle-Width
=
"50"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"BucketCount"
HeaderText
=
"Buckets"
HeaderStyle-Width
=
"65"
ItemStyle-Width
=
"65"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"ArrowCount"
HeaderText
=
"Arrows"
HeaderStyle-Width
=
"60"
ItemStyle-Width
=
"60"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"LMSCourseId"
HeaderText
=
"LMS Course"
HeaderStyle-Width
=
"70"
ItemStyle-Width
=
"70"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"ForPreview"
HeaderText
=
"Allow Sharing"
HeaderStyle-Width
=
"65"
ItemStyle-Width
=
"65"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
DataField
=
"ForMobile"
HeaderText
=
"Allow Mobile"
HeaderStyle-Width
=
"65"
ItemStyle-Width
=
"65"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
/>
</
Columns
>
<
NoRecordsTemplate
>
<
h2
>No Folders Selected or No Records</
h2
>
</
NoRecordsTemplate
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
div
>
</
asp:Panel
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
<
telerik:RadScriptBlock
ID
=
"RadScriptBlock1"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function ShowAlert(message) {
radalert(message, null, null, "Message");
return false;
}
function ShowDetailForm(id, rowIndex) {
OpenWindow("<%=ResolveClientUrl("~/Images/AnnotatedImage.aspx?Id=")%>" + id);
return false;
}
function ShowViewerForm(id) {
OpenWindow("<%=ResolveClientUrl("~/Viewer.aspx?SlideId=")%>" + id);
return false;
}
function ShowAddNewForm() {
OpenWindow("<%=ResolveClientUrl("~/Images/CreateAnnotatedImage.aspx")%>");
return false;
}
$(window).resize(function () {
resizegrid();
});
function responseEnd(sender, eventArgs) {
resizegrid();
}
function grid_created(sender, args) {
resizegrid();
}
function left_resized(sender, args) {
overview_leftpane_width = sender.get_width();
resizegrid();
}
function resizegrid() {
var grid = $find("<%= grid.ClientID %>");
var docHeight = getDocHeight();
var nudge = 85;
var header = $('#header-wrap').height();
var footer = $('#footer-wrap').height();
if (grid != null)
{
grid.get_element().style.height = docHeight - header - footer - nudge + "px";
grid.repaint();
}
}
function GridCreated(sender, eventArgs) {
resizegrid();
}
function ResizeImageSplitter(sender, args) {
sender.set_height($(window).height() - $("#header-wrap").height() - $("#footer-wrap").height() - 12);
}
function OpenWindow(path) {
window.radopen(path, "fullWindow");
}
</
script
>
</
telerik:RadScriptBlock
>
<%@ Page Title="Annotated Image: " Language="C#" MasterPageFile="~/MasterPages/Empty.Master" AutoEventWireup="true" CodeBehind="AnnotatedImage.aspx.cs" Inherits="DigitalScope.Web.Images.AnnotatedImage" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"cphScriptsStyles"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function showConfirmWindow(sender, args) {
var window = $find("<%= confirmWindow.ClientID %>");
var slideId = sender.get_commandArgument();
if (window) {
window.set_showContentDuringLoad(false);
window.setUrl("DeleteLayer.aspx?SlideID=" + slideId);
window.show();
}
}
function onSilverlightLoad(sender, args) {
var sl = $("#silverlight_container");
if (sl) {
var docHeight = getDocHeight();
var listheader = $("#listheader").height();
sl.height(docHeight - listheader - 15);
}
}
function onSilverlightError(sender, args) {
var appSource = "";
if (sender != null && sender != 0) {
appSource = sender.getHost().Source;
}
var errorType = args.ErrorType;
var iErrorCode = args.ErrorCode;
if (errorType == "ImageError" || errorType == "MediaError") {
return;
}
var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";
errMsg += "Code: " + iErrorCode + " \n";
errMsg += "Category: " + errorType + " \n";
errMsg += "Message: " + args.ErrorMessage + " \n";
if (errorType == "ParserError") {
errMsg += "File: " + args.xamlFile + " \n";
errMsg += "Line: " + args.lineNumber + " \n";
errMsg += "Position: " + args.charPosition + " \n";
}
else if (errorType == "RuntimeError") {
if (args.lineNumber != 0) {
errMsg += "Line: " + args.lineNumber + " \n";
errMsg += "Position: " + args.charPosition + " \n";
}
errMsg += "MethodName: " + args.methodName + " \n";
}
throw new Error(errMsg);
}
function splitter_load(sender) {
resizeSplitter();
}
function splitter_resized(sender, args) {
resizeSplitter();
}
function resizeSplitter() {
var splitter = $find("<%= splitter.ClientID %>");
var docHeight = getDocHeight();
var header = $('#header-wrap').height();
var footer = $('#footer-wrap').height();
splitter.set_height(docHeight - header - footer);
if (typeof ResizeListContainer == 'function') {
ResizeListContainer();
}
}
function ResizeListContainer() {
var splitter = $(".column_splitter").first();
var listheader = $("#listheader").height();
var listfooter = $("#listfooter").height();
var listcontainer = $("#listcontainer").height();
var nudge = 50;
if (splitter) {
$("#listcontainer").height(splitter.height() - listfooter - listheader - nudge)
}
}
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight)
);
}
function CloseAndRebind(args) {
GetRadWindow().BrowserWindow.RefreshGrid(args);
GetRadWindow().close();
}
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)
return oWindow;
}
function Close() {
GetRadWindow().close();
}
$(document).ready(function () {
GetRadWindow().add_beforeClose(GetRadWindow().BrowserWindow.RefreshGrid);
});
function showEmailWindow() {
var window = $find("<%= emailLinkWindow.ClientID %>").show();
}
function selectNode(text) {
var treeView = $find("<%= tvActions.ClientID %>");
var node = treeView.findNodeByText(text);
node.select();
}
</
script
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"cphMain"
runat
=
"server"
>
<
telerik:RadAjaxManager
runat
=
"server"
ID
=
"AjaxManager"
OnAjaxRequest
=
"AjaxManager_AjaxRequest"
EnablePageHeadUpdate
=
"true"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"tvActions"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"multiPage"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnSave"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"multiPage"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadButton
runat
=
"server"
ID
=
"btnResetView"
OnClick
=
"btnResetView_Click"
Visible
=
"false"
/>
<
telerik:RadWindow
runat
=
"server"
ID
=
"confirmWindow"
Title
=
"Delete Annotation Layer"
Modal
=
"true"
Behaviors
=
"Close, Move"
Height
=
"475"
Width
=
"500"
VisibleStatusbar
=
"false"
BackColor
=
"White"
/>
<
telerik:RadWindow
runat
=
"server"
ID
=
"emailLinkWindow"
Title
=
"Email Link"
Modal
=
"true"
OnClientShow
=
""
Behaviors
=
"Close"
Height
=
"300"
Width
=
"600"
VisibleStatusbar
=
"false"
>
<
ContentTemplate
>
<
div
class
=
"form"
>
<
div
class
=
"row"
>
<
telerik:RadTextBox
runat
=
"server"
Width
=
"550px"
ID
=
"tbToEmail"
Label
=
"To"
/>
</
div
>
<
div
class
=
"validationRow"
>
<
div
class
=
"right"
>
<
asp:RegularExpressionValidator
ID
=
"RegularExpressionValidator1"
ControlToValidate
=
"tbToEmail"
ErrorMessage
=
"Invalid email"
Display
=
"Dynamic"
ValidationExpression
=
"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
runat
=
"server"
/>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
telerik:RadTextBox
runat
=
"server"
Width
=
"550px"
ID
=
"tbFromEmail"
Label
=
"From"
/>
</
div
>
<
div
class
=
"validationRow"
>
<
div
class
=
"right"
>
<
asp:RegularExpressionValidator
ID
=
"RegularExpressionValidator2"
ControlToValidate
=
"tbFromEmail"
ErrorMessage
=
"Invalid email"
Display
=
"Dynamic"
ValidationExpression
=
"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
runat
=
"server"
/>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
telerik:RadTextBox
runat
=
"server"
Width
=
"550px"
ID
=
"tbBodyEmail"
Label
=
"Body"
TextMode
=
"MultiLine"
Rows
=
"4"
/>
</
div
>
<
div
class
=
"row"
>
<
telerik:RadButton
ID
=
"RadButton1"
runat
=
"server"
Text
=
"Send"
OnClick
=
"btnShareEmail_Click"
/>
</
div
>
</
div
>
</
ContentTemplate
>
</
telerik:RadWindow
>
<
telerik:RadSplitter
runat
=
"server"
ID
=
"splitter"
Width
=
"100%"
Height
=
"95%"
LiveResize
=
"true"
SplitBarsSize
=
"5px"
VisibleDuringInit
=
"false"
ResizeMode
=
"EndPane"
CssClass
=
"column_splitter"
OnClientLoaded
=
"splitter_load"
OnClientResized
=
"splitter_resized"
>
<
telerik:RadPane
runat
=
"server"
ID
=
"rightPane"
Width
=
"200"
MinWidth
=
"200"
CssClass
=
"twocolumn_pane"
Scrolling
=
"None"
>
<
div
id
=
"listheader"
>
<
h2
>Actions</
h2
>
</
div
>
<
div
id
=
"listcontainer"
>
<
telerik:RadTreeView
ID
=
"tvActions"
runat
=
"server"
CausesValidation
=
"false"
OnNodeClick
=
"tvActions_NodeClick"
onprerender
=
"tvActions_PreRender"
>
<
Nodes
>
<
telerik:RadTreeNode
Text
=
"Overview"
Value
=
"Overview"
Selected
=
"true"
/>
<
telerik:RadTreeNode
Text
=
"Edit"
Value
=
"Edit"
/>
<
telerik:RadTreeNode
Text
=
"Annotate"
Value
=
"Annotate"
/>
<%--<
telerik:RadTreeNode
Text
=
"Set Key"
Value
=
"SetKey"
/>--%>
<
telerik:RadTreeNode
Text
=
"Preview"
Value
=
"Preview"
/>
<
telerik:RadTreeNode
Text
=
"Revision History"
Value
=
"RevisionHistory"
/>
<
telerik:RadTreeNode
Text
=
"Delete"
Value
=
"Delete"
/>
<%--<
telerik:RadTreeNode
Text
=
"Sharing"
Value
=
"Sharing"
/>--%>
</
Nodes
>
</
telerik:RadTreeView
>
</
div
>
<
div
id
=
"listfooter"
>
<
telerik:RadButton
ID
=
"RadButton2"
runat
=
"server"
CausesValidation
=
"false"
Text
=
"Back To List"
OnClick
=
"btnClose_Click"
/>
</
div
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
runat
=
"server"
CollapseMode
=
"Forward"
CollapseExpandPaneText
=
"Expand/Collapse"
>
</
telerik:RadSplitBar
>
<
telerik:RadPane
runat
=
"server"
CssClass
=
"twocolumn_pane"
>
<
telerik:RadMultiPage
ID
=
"multiPage"
runat
=
"server"
SelectedIndex
=
"0"
ScrollBars
=
"Auto"
Height
=
"95%"
OnPageViewCreated
=
"multiPage_PageViewCreated"
CssClass
=
"multiPage"
/>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
<
telerik:RadCodeBlock
runat
=
"server"
ID
=
"Rad"
>
<
script
type
=
"text/javascript"
language
=
"javascript"
>
</
script
>
</
telerik:RadCodeBlock
>
</
asp:Content
>
Here is the user control code with the javascript that opens the second detail window.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AnnotatedImage_Overview.ascx.cs" Inherits="DigitalScope.Web.Images.controls.AnnotatedImage_Overview" %>
<%@ Register Assembly="Microsoft.Practices.Web.UI.WebControls" Namespace="Microsoft.Practices.Web.UI.WebControls" TagPrefix="pp" %>
<
div
id
=
"listheader"
>
<
h2
>Annotated Image - <
asp:Literal
ID
=
"litSlideName"
runat
=
"server"
></
asp:Literal
></
h2
>
</
div
>
<
asp:FormView
ID
=
"fvDetails"
runat
=
"server"
DataSourceID
=
"ocdsSlide"
OnDataBound
=
"fvDetails_DataBound"
HorizontalAlign
=
"Center"
Width
=
"100%"
>
<
ItemTemplate
>
<
div
class
=
"form formHeader"
>
Annotated Image Information
</
div
>
<
div
class
=
"form"
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"The Name of the annotated image."
/>
<
span
class
=
"left"
>Name:</
span
>
<
div
class
=
"right"
>
<
asp:Literal
ID
=
"tbSlideName"
runat
=
"server"
Text='<%# Eval("SlideName") %>' />
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"The Revision Number of the annotated image."
/>
<
span
class
=
"left"
>Revision:</
span
>
<
div
class
=
"right"
>
<
asp:Literal
ID
=
"tbSlideRevision"
runat
=
"server"
Text='<%# Eval("Revision") %>' />
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"The Folder(s) that the annotated image belongs to."
/>
<
span
class
=
"left"
>Folder(s):</
span
>
<
div
class
=
"right"
>
<
asp:Literal
runat
=
"server"
ID
=
"litSlideGroups"
/>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"The name of the source image this annotated image is based on."
/>
<
span
class
=
"left"
>Source Image:</
span
>
<
div
class
=
"right"
>
<
asp:Hyperlink
ID
=
"hlSourceImageName"
runat
=
"server"
CssClass
=
"color"
/>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"The default zoom level to use when navigating to regions of interest."
/>
<
span
class
=
"left"
>Default Zoom:</
span
>
<
div
class
=
"right"
>
<
asp:Literal
runat
=
"server"
ID
=
"litDefaultZoom"
/>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"The maximum zoom as a percentage of the total magnification."
/>
<
span
class
=
"left"
>Max Zoom:</
span
>
<
div
class
=
"right"
>
<
asp:Literal
runat
=
"server"
ID
=
"litMaxZoom"
/>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Link to LMS course (if present)."
/>
<
span
class
=
"left"
>LMS Course:</
span
>
<
div
class
=
"right"
>
<
asp:Hyperlink
runat
=
"server"
ID
=
"lnkLMSCourseId"
Target
=
"_blank"
Text
=
"Not Set"
ForeColor
=
"#000000"
/>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Specifies if this annotated image is available for preview without logging in."
/>
<
span
class
=
"left"
>For Preview:</
span
>
<
div
class
=
"right"
>
<
telerik:RadButton
ID
=
"RadButton1"
runat
=
"server"
ButtonType
=
"ToggleButton"
ToggleType
=
"CheckBox"
ReadOnly
=
"true"
Checked='<%# Eval("ForPreview").ToString().ToLower().Equals("true") %>' />
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Specifies if this annotated image is available on mobile devices."
/>
<
span
class
=
"left"
>For Mobile:</
span
>
<
div
class
=
"right"
>
<
telerik:RadButton
ID
=
"RadButton2"
runat
=
"server"
ButtonType
=
"ToggleButton"
ToggleType
=
"CheckBox"
ReadOnly
=
"true"
Checked='<%# Eval("ForMobile").ToString().ToLower().Equals("true") %>' />
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Case history for the annotated image."
/>
<
span
class
=
"left"
>Case History:</
span
>
<
div
class
=
"right"
>
<
asp:Literal
runat
=
"server"
ID
=
"litCaseHistory"
Text='<%# Eval("CaseHistory") %>' />
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Description for the annotated image."
/>
<
span
class
=
"left"
>Description:</
span
>
<
div
class
=
"right"
>
<
asp:Literal
runat
=
"server"
ID
=
"litSlideDescription"
Text='<%# Eval("Description") %>' />
</
div
>
</
div
>
</
div
>
<
div
class
=
"form formHeader"
>
Share A Link to this Annotated Image
</
div
>
<
div
class
=
"form"
>
<
a
href
=
"#"
style
=
"color: #1c7aa7 !important;"
onclick
=
'showEmailWindow();'
>Email Link to this Annotated Image</
a
>
</
div
>
<
div
class
=
"form formHeader"
>
Annotation Types
</
div
>
<
div
class
=
"form"
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Regions of Interest (green boxes) for the annotated image."
/>
<
span
class
=
"left"
>Regions Of Interest (ROI):</
span
>
<
div
class
=
"right"
>
<
telerik:RadGrid
ID
=
"gvStatistics"
runat
=
"server"
AutoGenerateColumns
=
"false"
DataSourceID
=
"ocdsRegionsOfInterest"
AllowSorting
=
"true"
AllowPaging
=
"false"
AllowFilteringByColumn
=
"false"
ShowGroupPanel
=
"false"
EnableLinqExpressions
=
"false"
PagerStyle-AlwaysVisible
=
"true"
>
<
ClientSettings
AllowDragToGroup
=
"false"
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
<
MasterTableView
CommandItemDisplay
=
"None"
DataKeyNames
=
"RegionOfInterestId"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"RegionOfInterestId"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"Text"
HeaderText
=
"ROI Text"
/>
<
telerik:GridBoundColumn
DataField
=
"Comments"
HeaderText
=
"Comments"
/>
<
telerik:GridBoundColumn
DataField
=
"EnableGrading"
HeaderText
=
"Enable Grading"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"Enabled"
HeaderText
=
"Enabled"
Visible
=
"false"
/>
</
Columns
>
<
NoRecordsTemplate
>
No Regions of Interest (ROI)
</
NoRecordsTemplate
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Arrows for the annotated image."
/>
<
span
class
=
"left"
>Arrows:</
span
>
<
div
class
=
"right"
>
<
telerik:RadGrid
ID
=
"rgArrows"
runat
=
"server"
AutoGenerateColumns
=
"false"
DataSourceID
=
"ocdsArrows"
AllowSorting
=
"true"
AllowPaging
=
"false"
AllowFilteringByColumn
=
"false"
ShowGroupPanel
=
"false"
EnableLinqExpressions
=
"false"
PagerStyle-AlwaysVisible
=
"true"
>
<
ClientSettings
AllowDragToGroup
=
"false"
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
<
MasterTableView
CommandItemDisplay
=
"None"
DataKeyNames
=
"ArrowId"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ArrowId"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"Text"
HeaderText
=
"Arrow Text"
/>
</
Columns
>
<
NoRecordsTemplate
>
No Arrows
</
NoRecordsTemplate
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
div
>
</
div
>
<
div
class
=
"form formHeader"
>
Quiz Components
</
div
>
<
div
class
=
"form"
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Pins (annotations) for the annotated image."
/>
<
span
class
=
"left"
>Pins:</
span
>
<
div
class
=
"right"
>
<
div
class
=
"RadGrid RadGrid_Metro"
tabindex
=
"0"
>
<
table
class
=
"rgMasterTable"
cellspacing
=
"0"
border
=
"0"
style
=
"width:100%;table-layout:auto;empty-cells:show;"
>
<
colgroup
>
<
col
>
</
colgroup
>
<
thead
>
<
tr
>
<
th
class
=
"rgHeader"
scope
=
"col"
>
<
a
>Pins Tree</
a
>
</
th
>
</
tr
>
</
thead
>
<
tbody
>
<
tr
class
=
"rgNoRecords"
>
<
td
style
=
"text-align:left;"
colspan
=
"1"
>
<
asp:Literal
runat
=
"server"
ID
=
"litNoPins"
Text
=
"No Pins"
Visible
=
"false"
/>
<
telerik:RadTreeView
ID
=
"tvPins"
runat
=
"server"
DataSourceID
=
"ocdsPins"
DataFieldID
=
"AnnotationId"
DataFieldParentID
=
"ParentAnnotationId"
DataTextField
=
"Text"
Style
=
"white-space: normal;"
/>
</
td
>
</
tr
>
</
tbody
>
</
table
>
</
div
>
</
div
>
</
div
>
<
div
class
=
"row"
>
<
img
alt
=
"info"
src
=
"../Pictures/info.png"
class
=
"info"
text
=
"Buckets (categories) for the annotated image."
/>
<
span
class
=
"left"
>Buckets:</
span
>
<
div
class
=
"right"
>
<
telerik:RadGrid
ID
=
"rgBuckets"
runat
=
"server"
AutoGenerateColumns
=
"false"
DataSourceID
=
"ocdsBuckets"
AllowSorting
=
"true"
AllowPaging
=
"false"
AllowFilteringByColumn
=
"false"
ShowGroupPanel
=
"false"
EnableLinqExpressions
=
"false"
PagerStyle-AlwaysVisible
=
"true"
>
<
ClientSettings
AllowDragToGroup
=
"false"
EnableRowHoverStyle
=
"true"
Selecting-AllowRowSelect
=
"true"
/>
<
MasterTableView
CommandItemDisplay
=
"None"
DataKeyNames
=
"CategoryId"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"CategoryId"
Visible
=
"false"
/>
<
telerik:GridBoundColumn
DataField
=
"Text"
HeaderText
=
"Bucket Text"
/>
<
telerik:GridBoundColumn
DataField
=
"Enabled"
HeaderText
=
"Enabled"
Visible
=
"false"
/>
</
Columns
>
<
NoRecordsTemplate
>
No Buckets
</
NoRecordsTemplate
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
</
div
>
</
div
>
</
ItemTemplate
>
</
asp:FormView
>
<
telerik:RadScriptBlock
runat
=
"server"
>
<
script
type
=
"text/javascript"
language
=
"javascript"
>
function ShowDetailForm(id) {
rWindow = window.radWindow;
window.radopen("SourceImage.aspx?Id=" + id, "fullWindow");
return false;
}
</
script
>
</
telerik:RadScriptBlock
>
<%@ Page Title="Source Image: " Language="C#" MasterPageFile="~/MasterPages/Empty.Master" AutoEventWireup="true" CodeBehind="SourceImage.aspx.cs" Inherits="DigitalScope.Web.Images.SourceImage" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"cphScriptsStyles"
runat
=
"server"
>
<
style
type
=
"text/css"
>
.column_splitter table {
width: 100% !important;
}
.column_splitter .twocolumn_pane {
overflow: auto !important;
}
</
style
>
<
script
type
=
"text/javascript"
src
=
"../Scripts/SourceImages.js"
></
script
>
<
script
type
=
"text/javascript"
>
$(document).ready(function () {
$(".multiPage").parent().css("height", "100%");
});
function onSilverlightLoad(sender, args) {
var sl = $("#silverlight_container");
if (sl) {
var docHeight = getDocHeight();
var listheader = $("#listheader").height();
sl.height(docHeight - listheader - 15);
}
}
function onSilverlightError(sender, args) {
var appSource = "";
if (sender != null && sender != 0) {
appSource = sender.getHost().Source;
}
var errorType = args.ErrorType;
var iErrorCode = args.ErrorCode;
if (errorType == "ImageError" || errorType == "MediaError") {
return;
}
var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";
errMsg += "Code: " + iErrorCode + " \n";
errMsg += "Category: " + errorType + " \n";
errMsg += "Message: " + args.ErrorMessage + " \n";
if (errorType == "ParserError") {
errMsg += "File: " + args.xamlFile + " \n";
errMsg += "Line: " + args.lineNumber + " \n";
errMsg += "Position: " + args.charPosition + " \n";
}
else if (errorType == "RuntimeError") {
if (args.lineNumber != 0) {
errMsg += "Line: " + args.lineNumber + " \n";
errMsg += "Position: " + args.charPosition + " \n";
}
errMsg += "MethodName: " + args.methodName + " \n";
}
throw new Error(errMsg);
}
function splitter_load(sender) {
resizeSplitter();
}
function splitter_resized(sender, args) {
resizeSplitter();
}
function resizeSplitter() {
var splitter = $find("<%= splitter.ClientID %>");
var docHeight = getDocHeight();
var header = $('#header-wrap').height();
var footer = $('#footer-wrap').height();
splitter.set_height(docHeight - header - footer);
if (typeof ResizeListContainer == 'function') {
ResizeListContainer();
}
}
function ResizeListContainer() {
var splitter = $(".column_splitter").first();
var listheader = $("#listheader").height();
var listfooter = $("#listfooter").height();
var listcontainer = $("#listcontainer").height();
var nudge = 50;
if (splitter) {
$("#listcontainer").height(splitter.height() - listfooter - listheader - nudge)
}
}
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight)
);
}
function CloseAndRebind(args) {
GetRadWindow().BrowserWindow.RefreshGrid(args);
GetRadWindow().close();
}
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)
return oWindow;
}
function Close() {
GetRadWindow().close();
}
$(document).ready(function () {
GetRadWindow().add_beforeClose(GetRadWindow().BrowserWindow.RefreshGrid);
});
</
script
>
</
asp:Content
>
<
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"cphMain"
runat
=
"server"
>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager"
runat
=
"server"
EnablePageHeadUpdate
=
"true"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"tvActions"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"multiPage"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadButton
runat
=
"server"
ID
=
"btnResetView"
OnClick
=
"btnResetView_Click"
Width
=
"0px"
Height
=
"0px"
Visible
=
"false"
/>
<
telerik:RadSplitter
runat
=
"server"
ID
=
"splitter"
Width
=
"100%"
Height
=
"95%"
LiveResize
=
"true"
SplitBarsSize
=
"5px"
VisibleDuringInit
=
"false"
ResizeMode
=
"EndPane"
CssClass
=
"column_splitter"
OnClientLoaded
=
"splitter_load"
OnClientResized
=
"splitter_resized"
>
<
telerik:RadPane
runat
=
"server"
ID
=
"rightPane"
Width
=
"200"
MinWidth
=
"200"
CssClass
=
"twocolumn_pane"
Scrolling
=
"None"
>
<
div
id
=
"listheader"
>
<
h2
>Actions</
h2
>
</
div
>
<
div
id
=
"listcontainer"
>
<
telerik:RadTreeView
ID
=
"tvActions"
runat
=
"server"
CausesValidation
=
"false"
OnNodeClick
=
"tvActions_NodeClick"
onprerender
=
"tvActions_PreRender"
>
<
Nodes
>
<
telerik:RadTreeNode
Text
=
"Overview"
Value
=
"Overview"
Selected
=
"true"
/>
<
telerik:RadTreeNode
Text
=
"Edit"
Value
=
"Edit"
/>
<
telerik:RadTreeNode
Text
=
"Preview"
Value
=
"Preview"
/>
<
telerik:RadTreeNode
Text
=
"Revision History"
Value
=
"RevisionHistory"
/>
<%--<
telerik:RadTreeNode
Text
=
"Delete"
Value
=
"Delete"
/>--%>
</
Nodes
>
</
telerik:RadTreeView
>
</
div
>
<
div
id
=
"listfooter"
>
<
telerik:RadButton
ID
=
"RadButton2"
runat
=
"server"
CausesValidation
=
"false"
Text
=
"Back To List"
OnClick
=
"btnClose_Click"
/>
</
div
>
</
telerik:RadPane
>
<
telerik:RadSplitBar
ID
=
"RadSplitBar1"
runat
=
"server"
CollapseMode
=
"Forward"
CollapseExpandPaneText
=
"Expand/Collapse"
>
</
telerik:RadSplitBar
>
<
telerik:RadPane
ID
=
"RadPane1"
runat
=
"server"
CssClass
=
"twocolumn_pane"
>
<
telerik:RadMultiPage
ID
=
"multiPage"
runat
=
"server"
SelectedIndex
=
"0"
ScrollBars
=
"Auto"
OnPageViewCreated
=
"multiPage_PageViewCreated"
CssClass
=
"multiPage"
/>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
</
asp:Content
>
<
telerik:RadAsyncUpload
ID
=
"AsyncUpload"
runat
=
"server"
TemporaryFolder
=
"~/Uploads"
CssClass
=
"ClientFileUpload"
MultipleFileSelection
=
"Automatic"
AutoAddFileInputs
=
"true"
EnableInlineProgress
=
"true"
ControlObjectsVisibility
=
"RemoveButtons"
OnClientFileSelected
=
"AsyncUpload_FileSelected"
OnClientAdded
=
"AsyncUpload_AddClientSelection"
OnClientFileUploadFailed
=
"AsyncUpload_UploadFailed"
OnClientProgressUpdating
=
"AsyncUpload_ProgressUpdating"
/>
// TODO: Instead of deleting the file input which seems to prompt the control to just force-create another
// input, cancel the upload by using the cancel element provided by Telerik. - KO 8/31/2012
//sender.deleteFileInputAt(eventArgs.get_rowIndex());
var errorRow = eventArgs.get_row();
// get the row's remove element
var cancelElement = $(errorRow).children('input')[0];
cancelElement.click();
badFile = true;
function AsyncUpload_UploadFailed(sender, eventArgs) {
var errorMessage = eventArgs.get_message();
var errorCode = parseInt(errorMessage.substring(errorMessage.indexOf(":") + 1).trim());
// 0 must be code for cancelled upload
if (errorCode == 0) {
var errorRow = eventArgs.get_row();
var fileName = $(errorRow).children('span')[0].innerText.trim();
var extension = fileName.substring(fileName.lastIndexOf("."));
NotificationsWcfService.AddWarning("The file {0} has an inappropriate extension ({1})",
[fileName, extension]);
eventArgs.set_handled(true);
}
}
function AsyncUpload_ProgressUpdating(sender, eventArgs) {
var fileSize = eventArgs.get_data().fileSize;
// If the file size is zero then stop the upload by triggering a click on the cancel object.
// This is the only way I have found to "stop" an upload.
// This still causes javascript errors but they are the same errors that get generated from a user
// cancel click so I will assume this is the most safe. - KO 8/31/2012
if (fileSize <= 0) {
var errorRow = eventArgs.get_row();
// get the row's remove element
var cancelElement = $(errorRow).children('input')[0];
cancelElement.click();
}
}