' objects available to be updated via ajax
Private _timeLabel As Label
Private _txtUserid As New TextBox ' If I change this to RadTextBox, viewstate errors occur.
Private _statusLabel As Label
Private m_RadTreeFolderHierarchy As New Telerik.Web.UI.RadTreeView
Public Sub New()
Me.ExportMode = WebPartExportMode.All
GetUserInfoFromWSS()
End Sub
Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
MyBase.OnInit(e)
Page.ClientScript.RegisterStartupScript(
GetType(_TreeNav_Webpart), Me.ID, "_spOriginalFormAction = document.forms[0].action;_spSuppressFormOnSubmitWrapper=true;", True)
If Me.Page.Form IsNot Nothing Then
Dim formOnSubmitAtt As String = Me.Page.Form.Attributes("onsubmit")
If Not String.IsNullOrEmpty(formOnSubmitAtt) AndAlso formOnSubmitAtt = "return _spFormOnSubmitWrapper();" Then
Me.Page.Form.Attributes("onsubmit") = "_spFormOnSubmitWrapper();"
End If
' Check for a scriptmanager, if none, add one.
Dim scriptManager As ScriptManager = Web.UI.ScriptManager.GetCurrent(Me.Page)
If scriptManager Is Nothing Then
scriptManager =
New RadScriptManager()
Me.Page.Form.Controls.AddAt(0, scriptManager)
End If
End If
End Sub
Protected Overloads Overrides Sub OnLoad(ByVal e As EventArgs)
MyBase.OnLoad(e)
AddControls()
End Sub
Protected
Sub AddControls()
Dim
nl As String = Environment.NewLine
Dim msgTxt As String = ""
Dim wrapPanel As New Panel()
wrapPanel.ID =
"Panel1"
Me.Controls.Add(wrapPanel)
Dim lblUserId As New Web.UI.WebControls.Label
lblUserId.Text =
"UID: " + _AttorneyID
lblUserId.ToolTip = _WorkEmail
wrapPanel.Controls.Add(lblUserId)
m_RadTreeFolderHierarchy.ID = "
NavTree" ' this name is referenced in client side javascript
'_txtUserid.Text = Environment.UserName
Try
' see if TreeData" & _AttorneyID & ".xml" exists to use. If not, use the default tree.
'If IO.File.Exists("~/MJComponentSupport/TreeData_" & _AttorneyID & ".xml") Then
Try
m_RadTreeFolderHierarchy.LoadContentFile(
"~/TreeSupport/Userdata/TreeData_" & Environment.UserName & ".xml")
msgTxt = Environment.UserName &
"'s Tree Loaded"
Catch ex As Exception
msgTxt =
"Default Tree Loaded"
m_RadTreeFolderHierarchy.LoadContentFile(
"~/TreeSupport/Userdata/TreeData.xml")
End Try
' change some visual display options
m_RadTreeFolderHierarchy.EnableTheming =
True 'similar to tree item
m_RadTreeFolderHierarchy.EnableAjaxSkinRendering =
True
m_RadTreeFolderHierarchy.Skin = _RadSkin
m_RadTreeFolderHierarchy.AllowNodeEditing =
False
m_RadTreeFolderHierarchy.CheckBoxes =
True
m_RadTreeFolderHierarchy.EnableDragAndDrop =
True
AddHandler m_RadTreeFolderHierarchy.NodeDrop, AddressOf treeView_NodeDrop
AddHandler m_RadTreeFolderHierarchy.NodeClick, AddressOf treeView_NodeClick
AddHandler m_RadTreeFolderHierarchy.ContextMenuItemClick, AddressOf treeViewMenu_ItemClick 'ContextMenuItemClick
AddHandler m_RadTreeFolderHierarchy.NodeEdit, AddressOf treeView_NodeTextChanged
'AddHandler m_RadTreeFolderHierarchy.NodeContextClick, AddressOf tvnodecontextclic
Catch ex As Exception
Dim RadTreeNodeRoot As New Telerik.Web.UI.RadTreeNode(_WorkEmail)
m_RadTreeFolderHierarchy.Nodes.Add(RadTreeNodeRoot)
RadTreeNodeRoot =
New Telerik.Web.UI.RadTreeNode(ex.Message)
m_RadTreeFolderHierarchy.Nodes.Add(RadTreeNodeRoot)
End Try
Try
' ADD Defaul Menu for tree
m_RadTreeFolderHierarchy.ContextMenus.Add(
New RadTreeViewContextMenu())
m_RadTreeFolderHierarchy.ContextMenus(0).LoadContentFile(
"~/TreeSupport/TreeMenu.xml")
' Menu for My Matters (Clients) top level.
m_RadTreeFolderHierarchy.ContextMenus.Add(
New RadTreeViewContextMenu())
m_RadTreeFolderHierarchy.ContextMenus(1).LoadContentFile(
"~/TreeSupport/ClientsMenu.xml")
' Menu for client record
m_RadTreeFolderHierarchy.ContextMenus.Add(
New RadTreeViewContextMenu())
m_RadTreeFolderHierarchy.ContextMenus(2).LoadContentFile(
"~/TreeSupport/ClientMenu.xml")
Catch ex As Exception
End Try
'add tree to panel
wrapPanel.Controls.Add(m_RadTreeFolderHierarchy)
'add a label control
_timeLabel =
New Label()
_timeLabel.Text = DateTime.Now.ToLongTimeString()
wrapPanel.Controls.Add(_timeLabel)
' add label to panel
Dim linebreak As Label = New Label()
linebreak.Text =
" "
wrapPanel.Controls.Add(linebreak)
' add label to panel
'add a label control
_statusLabel =
New Label()
_statusLabel.Text = msgTxt
wrapPanel.Controls.Add(_statusLabel)
' add label to panel
wrapPanel.Controls.Add(linebreak)
' add label to panel
' add user textbox
wrapPanel.Controls.Add(_txtUserid) ' add label to panel
Dim ajaxManager As RadAjaxManager = RadAjaxManager.GetCurrent(Me.Page)
If ajaxManager Is Nothing Then
ajaxManager =
New RadAjaxManager()
ajaxManager.ID =
"RadAjaxManager1"
Controls.Add(ajaxManager)
Me.Page.Items.Add(GetType(RadAjaxManager), ajaxManager)
End If
'20080911 bac using ajaxManager instead of
ajaxManager.AjaxSettings.AddAjaxSetting(m_RadTreeFolderHierarchy, wrapPanel)
' Me.Controls.Add(m_RadTreeFolderHierarchy)
End Sub
| protected void Page_Init(object sender, System.EventArgs e) |
| { |
| PopulateGridOnPageInit(); |
| } |
| private bool LoadGrid() |
| { |
| //Hidden field is set true when "Load Grid" button is clicked |
| string loadGrid = Request.Form.Get(this.uxHiddenField_LoadGrid.UniqueID); |
| if (!string.IsNullOrEmpty(loadGrid)) |
| { |
| return Boolean.Parse(loadGrid); |
| } |
| else |
| { |
| return false; |
| } |
| } |
| private void PopulateGridOnPageInit() |
| { |
| RadGrid radGrid = new RadGrid(); |
| radGrid.ID = RadGridId; |
| if (!LoadGrid()) |
| { |
| radGrid.Visible = false; |
| // Add the Grid to the page |
| uxPlaceHolder.Controls.Add(radGrid); |
| return; |
| } |
| // Set properties |
| radGrid.Skin = "Vista"; |
| radGrid.PageSize = 25; |
| radGrid.AllowPaging = true; |
| radGrid.AllowCustomPaging = true; |
| radGrid.AllowSorting = true; |
| radGrid.MasterTableView.AllowCustomSorting = true; |
| radGrid.MasterTableView.EnableColumnsViewState = false; |
| radGrid.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric; |
| radGrid.ClientSettings.Selecting.AllowRowSelect = true; |
| radGrid.ClientSettings.Selecting.EnableDragToSelectRows = false; |
| radGrid.ClientSettings.Resizing.AllowColumnResize = false; |
| radGrid.ClientSettings.Resizing.ClipCellContentOnResize = false; |
| radGrid.ClientSettings.Resizing.EnableRealTimeResize = false; |
| radGrid.ClientSettings.ReorderColumnsOnClient = false; |
| radGrid.ClientSettings.AllowColumnsReorder = false; |
| radGrid.ClientSettings.ColumnsReorderMethod = GridClientSettings.GridColumnsReorderMethod.Reorder; |
| radGrid.ShowGroupPanel = false; |
| radGrid.GroupingEnabled = false; |
| radGrid.GroupPanel.Visible = false; |
| radGrid.ShowFooter = false; |
| radGrid.MasterTableView.ShowFooter = false; |
| // Selecting multiple rows (client-side) |
| radGrid.AllowMultiRowSelection = true; |
| GridClientSelectColumn gridClientSelectColumn = new GridClientSelectColumn(); |
| gridClientSelectColumn.ItemStyle.Width = Unit.Percentage(1); |
| radGrid.Columns.Add(gridClientSelectColumn); |
| // Build the columns dynamically |
| radGrid.AutoGenerateColumns = false; |
| GridBoundColumn column = new GridBoundColumn(); |
| column.DataField = "ID"; |
| column.HeaderText = "Customer Identifier"; |
| radGrid.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "Name"; |
| column.HeaderText = "Name"; |
| radGrid.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "Company"; |
| column.HeaderText = "Company"; |
| radGrid.Columns.Add(column); |
| GridTableView childTable = new GridTableView(radGrid); |
| childTable.Width = Unit.Percentage(100); |
| childTable.DataMember = "CustomerID"; |
| column = new GridBoundColumn(); |
| column.DataField = "ID"; |
| column.HeaderText = "Order Identifier"; |
| childTable.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "OrderDate"; |
| column.HeaderText = "Order Date"; |
| childTable.Columns.Add(column); |
| column = new GridBoundColumn(); |
| column.DataField = "Cost"; |
| column.HeaderText = "Cost"; |
| childTable.Columns.Add(column); |
| radGrid.MasterTableView.DetailTables.Add(childTable); |
| // Wire up the method that will get the grid data |
| radGrid.NeedDataSource += new GridNeedDataSourceEventHandler(radGrid_NeedDataSource); |
| radGrid.DetailTableDataBind += new GridDetailTableDataBindEventHandler(radGrid_DetailTableDataBind); |
| // Set the key for client side selection |
| radGrid.MasterTableView.ClientDataKeyNames = new string[] { "ID" }; |
| // Set the key for server side selection |
| radGrid.MasterTableView.DataKeyNames = new string[] { "ID" }; |
| // Add the Grid to the page |
| uxPlaceHolder.Controls.Add(radGrid); |
| } |
| protected void radGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) |
| { |
| if (!e.IsFromDetailTable) |
| { |
| // Get the rad grid |
| RadGrid radGrid = (RadGrid)source; |
| // Bind it to the Grid |
| radGrid.DataSource = this.Customers; |
| // Set the count |
| radGrid.VirtualItemCount = this.Customers.Count; |
| } |
| } |
| protected void radGrid_DetailTableDataBind(object source, GridDetailTableDataBindEventArgs e) |
| { |
| GridDataItem dataItem = e.DetailTableView.ParentItem; |
| switch (e.DetailTableView.DataMember) |
| { |
| case "CustomerID": |
| List<Order> orders = GetOrdersForCustomer((int)dataItem.GetDataKeyValue("ID")); |
| e.DetailTableView.DataSource = orders; |
| e.DetailTableView.VirtualItemCount = orders.Count; |
| break; |
| default: |
| break; |
| } |
| } |
The compiler throws an error saying:
Error 143 The type or namespace name 'Base' does not exist in the namespace 'Telerik.WebControls' (are you missing an assembly reference?)
I looked in the bin directory of my project and all I saw was the following dll's:
1) RadGrid.dll (used in a previous version of Rad Controls-still works great)
2) Telerik.Web.UI.dll
I used the automatic installation to install RadControls to my VS 2005 IDE and it appears fine in the toolbox. In design mode, I inserted the Rad Calendar control on to my page and have customized it from there.
I keep thinking that there is a way to add a reference/assembly for the Telerik.WebControls.dll to the assemble, but can't locate it anywhere.
Do I even need the Telerik.WebControls.dll in this version of RadControls for ASP.Net Ajax or will the Telerik.Web.UI.dll do the trick for me?
If yes, how do I add that reference to my project?
I've tried several times to add it from the RadControls installation folder at this location:
C:\Program Files\Telerik\RadControls for ASPNET AJAX Q2 2008\Bin
but the only dll's and files I saw in there were:
1) Telerik.Charting.dll
2) Telerik.Charting.xml
3) Telerik.Web.UI.dll
4) Telerik.Web.UI.xml
I already have the Telerik.Web.UI.dll & Telerik.Web.UI.xml files in the bin directory of my project, but can't seem to get the Telerik.WebControls.dll in there.
Can anybody help me here? What am I doing wrong?
And/or - Does anybody have a better suggestion on how to display d/b driven Event data on a RADCalendar for ASP.Net Ajax control?
Any assistance would be greatly appreciated for this rookie programmer.
Thanks
Jeff O'Connell
jboconne@iupui.edu
Here is the C# code behind page I'm using for the RadCalendar:
| using System; | |
| using System.Data; | |
| using System.Data.SqlClient; | |
| using System.Data.Odbc; | |
| using System.Configuration; | |
| using System.Collections; | |
| using System.Web; | |
| using System.Web.Security; | |
| using System.Web.UI; | |
| using System.Web.UI.WebControls; | |
| using System.Web.UI.WebControls.WebParts; | |
| using System.Web.UI.HtmlControls; | |
| using AnnieECasey.DataBase; | |
| using AnnieECasey.Lib; | |
| using Telerik.WebControls; | |
| using Telerik.Web.UI; | |
| namespace AnnieECasey | |
| { | |
| /// <summary> | |
| /// Summary description for resources_websites. | |
| /// </summary> | |
| public partial class resources_events : System.Web.UI.Page | |
| { | |
| public class EventItem | |
| { | |
| //=========================================== | |
| // Class used in building the event calendar | |
| //=========================================== | |
| private int _EventID; | |
| private System.DateTime _EventDate; | |
| private string _EventName; | |
| private string _EventDesc; | |
| private int _EventCategoryID; | |
| public EventItem(int EventID, System.DateTime EventDate, string EventName, string EventDesc, int EventCategoryID) | |
| { | |
| _EventID = EventID; | |
| _EventDate = EventDate; | |
| _EventName = EventName; | |
| _EventDesc = EventDesc; | |
| _EventCategoryID = EventCategoryID; | |
| } | |
| public int EventID | |
| { | |
| get | |
| { | |
| return _EventID; | |
| } | |
| } | |
| public System.DateTime EventDate | |
| { | |
| get | |
| { | |
| return _EventDate; | |
| } | |
| } | |
| public string EventName | |
| { | |
| get | |
| { | |
| return _EventName; | |
| } | |
| } | |
| public string EventDesc | |
| { | |
| get | |
| { | |
| return _EventDesc; | |
| } | |
| } | |
| public int EventCategoryID | |
| { | |
| get | |
| { | |
| return _EventCategoryID; | |
| } | |
| } | |
| } | |
| public void Page_Load(object sender, System.EventArgs e) | |
| { | |
| radCalEvents.SelectedDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); | |
| if (!IsPostBack) | |
| { | |
| GetEventItems(); | |
| } | |
| } | |
| // setup an array to store all of the events for the month(this is what we will access thru the DayRender event) | |
| private ArrayList EventArrayList = new ArrayList(); | |
| public void GetEventItems() | |
| { | |
| DateTime startDate = ((MonthView)radCalEvents.CalendarView).MonthStartDate; | |
| DateTime endDate = ((MonthView)radCalEvents.CalendarView).MonthEndDate; | |
| SqlDataSource1.SelectParameters["MonthStartDate"].DefaultValue = startDate.ToString(); | |
| SqlDataSource1.SelectParameters["MonthEndDate"].DefaultValue = endDate.ToString(); | |
| SqlDataReader EventReader = ((SqlDataReader)((IEnumerable)SqlDataSource1.Select(DataSourceSelectArguments.Empty))); | |
| while (EventReader.Read()) | |
| { | |
| EventItem objEvent = new EventItem((int)EventReader["nID"], Convert.ToDateTime(EventReader["dEventDate"]), EventReader["sEventName"].ToString(), EventReader["sEventDescription"].ToString(), (int)EventReader["nEventCategoryID"]); | |
| EventArrayList.Add(objEvent); | |
| } | |
| EventReader.Close(); | |
| EventReader = null; | |
| } | |
| protected void radCalEvents_DayRender(object sender, Telerik.WebControls.Base.Calendar.Events.DayRenderEventArgs e) | |
| { | |
| DateTime currentDate = ((Telerik.WebControls.Base.Calendar.Events.DayRenderEventArgs)e).Day.Date; | |
| Table table = new Table(); | |
| e.Cell.Width = 95; | |
| table.Width = e.Cell.Width; | |
| table.Height = e.Cell.Height; | |
| table.CellPadding = 0; | |
| table.CellSpacing = 0; | |
| // Build the row for the day number | |
| TableRow dateRow = new TableRow(); | |
| TableCell dateCell = new TableCell(); | |
| dateCell.Width = e.Cell.Width; | |
| dateCell.CssClass = "DayNumber"; | |
| dateCell.Text = e.Day.Date.Day.ToString(); | |
| dateRow.Cells.Add(dateCell); | |
| table.Rows.Add(dateRow); | |
| // Look in the arraylist for any events on this day | |
| foreach (EventItem objEvent in EventArrayList) | |
| { | |
| if (objEvent.EventDate == currentDate) | |
| { | |
| // Add a row for the event | |
| TableRow itemRow = new TableRow(); | |
| TableCell itemCell = new TableCell(); | |
| itemCell.CssClass = "EventCell"; | |
| itemCell.Width = e.Cell.Width; | |
| // Set up the hyperlink for the event | |
| string itemText = objEvent.EventName; | |
| HyperLink itemLink = new HyperLink(); | |
| //link to a specific page for details of the event with the eventID as the parameter | |
| itemLink.NavigateUrl = "resources_eventDetails.aspx?eventid=" + objEvent.EventID; | |
| itemLink.Text = itemText; | |
| itemLink.CssClass = "EventLink"; | |
| itemLink.ToolTip = objEvent.EventDesc; | |
| itemCell.Controls.Add(itemLink); | |
| itemRow.Cells.Add(itemCell); | |
| table.Rows.Add(itemRow); | |
| } | |
| } | |
| } | |
| protected void radCalEvents_DefaultViewChanged(object sender, Telerik.WebControls.Base.Calendar.Events.DefaultViewChangedEventArgs e) | |
| { | |
| // Select events for the month when the month changes | |
| GetEventItems(); | |
| } | |
and then here is the partial code for the ASPX page:
| <asp:SqlDataSource ID="SqlDataSource1" runat="server" |
| ConnectionString="<%$ ConnectionStrings:aec_devConnectionString %>" |
| DataSourceMode="DataReader" SelectCommand="SELECT * FROM [Event] WHERE (([dEventDate] >= @MonthStartDate) AND ([dEventDate] <= @MonthEndDate)) ORDER BY [dEventDate]"> |
| <SelectParameters> |
| <asp:Parameter Name="MonthStartDate" Type="DateTime" /> |
| <asp:Parameter Name="MonthEndDate" Type="DateTime" /> |
| </SelectParameters> |
| </asp:SqlDataSource> |
| <br /> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <br /> |
| <telerik:radajaxmanager id="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="radCalEvents"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="radCalEvents"></telerik:AjaxUpdatedControl> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:radajaxmanager> |
| <telerik:radcalendar id="radCalEvents" runat="server" OnDayRender="radCalEvents_DayRender" OnDefaultViewChanged="radCalEvents_DefaultViewChanged" font-names="Arial,Verdana,Tahoma" |
| height="500px" width="700px" ShowRowHeaders="False" Skin="WebBlue" CellAlign="Left" CellVAlign="Top" DayNameFormat="Full" ShowOtherMonthsDays="False" SingleViewRows="7" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False" EnableMultiSelect="False" NavigationCellPadding="0" PresentationType="Preview" BorderColor="SteelBlue" BorderStyle="Solid" BorderWidth="1px"> |
| <SelectedDayStyle BackColor="LightSteelBlue" ForeColor="Transparent" /> |
| <DayStyle BorderStyle="Solid" BorderWidth="1px" Font-Names="Arial" Font-Size="Medium" |
| Height="100px" Width="100px" Wrap="True" BorderColor="SteelBlue" HorizontalAlign="Left" VerticalAlign="Top" Font-Underline="True" /> |
| <OtherMonthDayStyle ForeColor="Silver" Wrap="False" BorderColor="SteelBlue" BorderStyle="Solid" BorderWidth="1px" /> |
| <TitleStyle BackColor="White" BorderColor="Transparent" Font-Names="Verdana" Font-Size="12pt" /> |
| <WeekendDayStyle BorderStyle="Solid" BorderWidth="1px" Font-Names="Arial" Font-Size="Medium" |
| Height="100px" VerticalAlign="Top" Width="100px" BorderColor="SteelBlue" HorizontalAlign="Left" Wrap="True" /> |
| <CalendarTableStyle BorderColor="Transparent" HorizontalAlign="Left" |
| VerticalAlign="Top" /> |
| </telerik:radcalendar> |