private void FillChart(IEnumerable<EntitySearchResponse> data) { SentimentChart.ChartTitle.Text = "Sentemants Per day"; SentimentChart.PlotArea.YAxis.TitleAppearance.Text = "Sentimants %"; SentimentChart.PlotArea.XAxis.LabelsAppearance.RotationAngle = 90; SentimentChart.PlotArea.XAxis.Step = 10; SentimentChart.PlotArea.XAxis.Items.Clear(); foreach (var date in data.Select(x => x.Date).Distinct()) { var axisItem = new AxisItem(date.ToString("ddd dd")); SentimentChart.PlotArea.XAxis.Items.Add(axisItem); } SentimentChart.DataSource = data; SentimentChart.PlotArea.Series.Clear(); foreach (var entityName in data.Select(x => x.EntityName).Distinct()) { var series = new ColumnSeries(); series.LabelsAppearance.DataFormatString = "{0} items"; series.TooltipsAppearance.DataFormatString = "{0} {2} items"; series.Name = entityName; var items = data.Where(x => x.EntityName == entityName).ToList(); foreach (var entitySearchResponse in items) { var seriesItem = new SeriesItem(entitySearchResponse.Sentiment); seriesItem.TooltipValue = string.Format("{0} Sentiment - {1} Volume", entitySearchResponse.Sentiment, entitySearchResponse.Volume); series.Items.Add(seriesItem); } SentimentChart.PlotArea.Series.Add(series); } }Private Sub TutorialCreatingASlideViewerWithRadRotator_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load Dim myPicturesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) For Each fileName As String In Directory.GetFiles(myPicturesPath, "*.jpg") RadRotator1.Items.Add(GetThumbNail(fileName)) Next RadRotator1.Start(True) RadRotator1.ShouldStopOnMouseOver = FalseEnd SubPrivate Function GetThumbNail(ByVal path As String) As RadImageItem Dim imageItem As New RadImageItem() Dim image As Image = image.FromFile(path) ' workaround to prevent using internal image thumbnail image.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone) image.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone) ' calculate aspect ratio so image is not distorted Dim ratio As Double = 0 If image.Width > image.Height Then ratio = ClientRectangle.Width / image.Width Else ratio = ClientRectangle.Height / image.Height End If Dim newWidth As Integer = Convert.ToInt32(image.Width * ratio) Dim newHeight As Integer = Convert.ToInt32(image.Height * ratio) imageItem.Image = image.GetThumbnailImage(newWidth, newHeight, Nothing, IntPtr.Zero) Return imageItemEnd FunctionPrivate Sub RadRotator1_BeginRotate(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.BeginRotateEventArgs) Handles RadRotator1.BeginRotate RadLabelElement1.Text = [String].Format("Rotating from item {0} to {1}", e.From, e.[To])End SubSo, I have this situation where I want to update the data in a RadGrid and each row's checkboxes based on what I type in RadAutoCompleteBox control. It seems to work as I want it except for the checkboxes' states. They simply preserve their checked status after I set them to check on Grid's PreRender event and after that you won't be able to manually check them either. If I didn't type anything in the RadAutoCompleteBox control and tried to check any checkbox in the grid they preserve their state. Below is my entire ASPX and C# code. Any help is appreciated.
ASPX code:
<%@ Page Title="Flightdeck - Roles" Language="C#" MasterPageFile="Admin.master" AutoEventWireup="true" CodeBehind="UserGroups.aspx.cs" Inherits="FlightDeck.Configure.Roles" %><asp:Content ID="Content2" ContentPlaceHolderID="ContentAdmin" runat="server"> <div class="main-section clearfix"> <button class="abs-right-btn" runat="server" id="btnAddNewUserGroup"> Add New User Group</button> <h2 class="h2-top-none in-b"> Roles Admin</h2> <hr class="shade-hr" /> <fieldset> <legend></legend> <label class="main-label"> Filter by User:</label> <telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" runat="server" AutoPostBack="True" OnEntryAdded="RadAutoCompleteBox1_OnEntryAdded" OnEntryRemoved="RadAutoCompleteBox1_OnEntryRemoved" DataSourceID="ObjectDataSource2" Width="400" CssClass="main-input filter-user-input" EmptyMessage="Type a user name" Filter="StartsWith" InputType="Token" DropDownWidth="320px"> </telerik:RadAutoCompleteBox> <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetAllActiveUsers" TypeName="Services.Configure.ConfigureService"> </asp:ObjectDataSource> </fieldset> <div class="admin-left"> <div class="active-roles-table hasblue table-bott"> <h3> Active Roles for <%= SelectedUsers %></h3> <telerik:RadGrid ID="UserGroupsGrid" runat="server" AllowFilteringByColumn="True" CellSpacing="0" DataSourceID="ObjectDataSource1" GridLines="None" AllowPaging="True" AllowSorting="True" AllowMultiRowSelection="True" AutoGenerateColumns="False" Skin="FlightDeckSkin" AllowMultiRowEdit="True" EnableEmbeddedSkins="False" OnPreRender="UserGroupsGrid_OnPreRender" > <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True"> <Selecting AllowRowSelect="True" EnableDragToSelectRows="True" /> <Resizing AllowColumnResize="True" AllowRowResize="false" ResizeGridOnColumnResize="false" ClipCellContentOnResize="true" EnableRealTimeResize="false" /> </ClientSettings> <MasterTableView DataSourceID="ObjectDataSource1" DataKeyNames="Id" CssClass="zebra-table table1" EditMode="EditForms"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> <Columns> <telerik:GridBoundColumn DataField="Id" FilterControlAltText="Filter Id Column" HeaderText="Id" ReadOnly="True" SortExpression="Id" UniqueName="Id"> <ItemStyle Width="20%"></ItemStyle> <HeaderStyle Width="20%"></HeaderStyle> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Name" FilterControlAltText="Filter Name Column" HeaderText="Name" SortExpression="Name" UniqueName="Name"> <ItemStyle Width="45%"></ItemStyle> <HeaderStyle Width="45%"></HeaderStyle> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Users" FilterControlAltText="Filter Users Column" ReadOnly="True" HeaderText="Users" SortExpression="Users" UniqueName="Users"> <ItemStyle Width="15%"></ItemStyle> <HeaderStyle Width="15%"></HeaderStyle> </telerik:GridBoundColumn> <telerik:GridTemplateColumn AllowFiltering="False"> <ItemTemplate> <asp:LinkButton runat="server" ID="btnEdit" CssClass="edit-table" OnClick="btnEdit_OnClick"></asp:LinkButton> </ItemTemplate> <ItemStyle Width="9%"></ItemStyle> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn AllowFiltering="False"> <ItemTemplate> <asp:LinkButton ID="btnDelete" runat="server" CssClass="delete-x" OnClick="btnDelete_OnClick"></asp:LinkButton> </ItemTemplate> <ItemStyle Width="9%"></ItemStyle> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn" AllowFiltering="False"> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True" EnableViewState="True" /> </ItemTemplate> <HeaderTemplate> <asp:CheckBox ID="headerChkbox" runat="server" OnCheckedChanged="ToggleSelectedState" AutoPostBack="True" /> </HeaderTemplate> </telerik:GridTemplateColumn> </Columns> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> </MasterTableView> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu EnableEmbeddedSkins="False"> </HeaderContextMenu> </telerik:RadGrid> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteUserGroups" OldValuesParameterFormatString="original_{0}" SelectMethod="GetUserGroups" TypeName="Services.Configure.ConfigureService" UpdateMethod="UpdateUserGroups"> <DeleteParameters> <asp:Parameter Name="id" Type="Int32" /> </DeleteParameters> <SelectParameters> <asp:SessionParameter Name="userNames" SessionField="SelectedUsers" Type="Object" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="id" Type="Int32" /> <asp:Parameter Name="userId" Type="Int32" /> </UpdateParameters> </asp:ObjectDataSource> </div> </div> <div class="admin-right"> <h3> Selected Roles</h3> <telerik:RadListBox ID="lstSelectedGroups" runat="server" CssClass="main-multiple-select selected-roles-select"> </telerik:RadListBox> <button class="" runat="server" id="btnCancel"> Cancel</button> <button class="dark-btn right" runat="server" id="btnUpdate"> Update</button> </div> </div></asp:Content>
Code behind:
using System;using System.Collections.Generic;using Telerik.Web.UI;using Services.Configure;using System.Web.UI.WebControls;using System.Linq;namespace FlightDeck.Configure{ public partial class Roles : System.Web.UI.Page { public string SelectedUsers; private ConfigureService _service; protected void Page_Init(object sender, EventArgs e) { _service = new ConfigureService(); if (!Page.IsPostBack) { Session["SelectedUsers"] = null; Session["selectedItems"] = null; } } protected void RadAutoCompleteBox1_OnEntryAdded(object sender, AutoCompleteEntryEventArgs e) { var users = new List<string> { e.Entry.Text }; if (Session["SelectedUsers"] == null) { Session["SelectedUsers"] = users; if (users.Count() > 1) users.ForEach(s => SelectedUsers += s + "; "); else { SelectedUsers = users.First(); } } else { users = (List<String>) Session["SelectedUsers"]; users.Add(e.Entry.Text); Session["SelectedUsers"] = users; if (users.Count() > 1) users.ForEach(s => SelectedUsers += s + "; "); else { SelectedUsers = users.First(); } } } protected void RadAutoCompleteBox1_OnEntryRemoved(object sender, AutoCompleteEntryEventArgs e) { if (Session["SelectedUsers"] == null) return; var users = (List<String>)Session["SelectedUsers"]; users.Remove(e.Entry.Text); Session["SelectedUsers"] = users; if (users.Count() > 1) users.ForEach(s => SelectedUsers += s + "; "); else if (users.Count.Equals(0)) { SelectedUsers = string.Empty; } else { SelectedUsers = users.First(); } } protected void btnEdit_OnClick(object sender, EventArgs e) { var id = Convert.ToInt32(((LinkButton) sender).CommandArgument); var service = new ConfigureService(); //service.UpdateUserGroups(id); } protected void btnDelete_OnClick(object sender, EventArgs e) { var id = Convert.ToInt32(((LinkButton)sender).CommandArgument); var service = new ConfigureService(); service.DeleteUserGroups(id); } protected void ToggleRowSelection(object sender, EventArgs e) { ((sender as CheckBox).NamingContainer as GridItem).Selected = (sender as CheckBox).Checked; bool checkHeader = true; foreach (GridDataItem dataItem in UserGroupsGrid.MasterTableView.Items) { if (!(dataItem.FindControl("CheckBox1") as CheckBox).Checked) { checkHeader = false; break; } } GridHeaderItem headerItem = UserGroupsGrid.MasterTableView.GetItems(GridItemType.Header)[0] as GridHeaderItem; (headerItem.FindControl("headerChkbox") as CheckBox).Checked = checkHeader; var checkBox1 = sender as CheckBox; List<string> selectedItemsIds; if (Session["selectedItems"] == null) { selectedItemsIds = new List<string>(); } else { selectedItemsIds = (List<string>)Session["selectedItems"]; } if (checkBox1 != null) { var gridItem = checkBox1.NamingContainer as GridItem; if (gridItem != null) gridItem.Selected = checkBox1.Checked; } var strGroupId = ""; var checkBox = sender as CheckBox; if (checkBox != null && checkBox.Checked) { var dataItem = (GridDataItem)((sender as CheckBox).NamingContainer as GridItem); if (dataItem != null) { strGroupId = dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["Id"].ToString(); } if (!selectedItemsIds.Any( d => d.Equals(strGroupId))) selectedItemsIds.Add(strGroupId); Session["selectedItems"] = selectedItemsIds; } var box = sender as CheckBox; if (box != null && box.Checked == false) { var dataItem = (GridDataItem)((sender as CheckBox).NamingContainer as GridItem); strGroupId = dataItem.OwnerTableView.DataKeyValues[dataItem.ItemIndex]["Id"].ToString(); selectedItemsIds.Remove(strGroupId); Session["selectedItems"] = selectedItemsIds; } // Refresh the list box with the names of the user groups selected var allGroups = _service.GetAllGroups(); lstSelectedGroups.Items.Clear(); foreach (var id in selectedItemsIds) { var groupId = Convert.ToInt32(id); var userGroupViewModel = allGroups.FirstOrDefault(d => d.Id.Equals(groupId)); if (userGroupViewModel != null) lstSelectedGroups.Items.Add(new RadListBoxItem(userGroupViewModel.GroupName)); } } protected void ToggleSelectedState(object sender, EventArgs e) { CheckBox headerCheckBox = (sender as CheckBox); foreach (GridDataItem dataItem in UserGroupsGrid.MasterTableView.Items) { (dataItem.FindControl("CheckBox1") as CheckBox).Checked = headerCheckBox.Checked; dataItem.Selected = headerCheckBox.Checked; } } protected void UserGroupsGrid_OnPreRender(object sender, EventArgs e) { var users = Session["SelectedUsers"] != null ? (List<String>)Session["SelectedUsers"] : new List<string>(); var groupIds = _service.GetAllGroups(users).Where(d => d.Selected).Select(d => d.Id).ToList(); // get all group ids that should be marked as selected after the users had been picked if (users.Any()) { // Find rows that all picked users belong to and mark the check box for that row foreach ( var dataItem in UserGroupsGrid.MasterTableView.Items.OfType<GridDataItem>() .Where( d => groupIds.Any( i => i.Equals(Convert.ToInt32(d.OwnerTableView.DataKeyValues[d.ItemIndex]["Id"])))) ) { dataItem.Selected = true; var checkBox = dataItem.FindControl("CheckBox1") as CheckBox; if (checkBox != null) checkBox.Checked = true; } } else { if (Session["selectedItems"] != null) { var selectedItemsIds = ((List<string>) Session["selectedItems"]).Select(d => Convert.ToInt32(d)).ToList(); var selectedGridItems = UserGroupsGrid.MasterTableView.Items.OfType<GridDataItem>() .Where(item => selectedItemsIds.Any(d => d.Equals( Convert.ToInt32(item.OwnerTableView.DataKeyValues[item.ItemIndex]["Id"])))) .ToList(); foreach (var dataItem in selectedGridItems) { dataItem.Selected = true; var checkBox = dataItem.FindControl("CheckBox1") as CheckBox; if (checkBox != null) checkBox.Checked = true; } } } } }}Hi,
I have an aspx.cs page which uploads the RadAsyncUpload UploadedFiles collection to Azure per the following button click event. I've been asked to upload the files automatically, as soon as the user hits the RadAsyncUpload Select button, rather than having an extra button on the page, but not sure how to do this. Any help with this would be greatly appreciated.
I need to run code similar to the below....
protected void btnAttachFiles_Click(object sender, EventArgs e){ Boolean isUploaded = false; for (int i = 0; i <= RadAsyncUpload1.UploadedFiles.Count - 1; i++) { try { Telerik.Web.UI.UploadedFile file = RadAsyncUpload1.UploadedFiles[i]; // upload file to azure byte[] fileDataByteArray = new byte[file.InputStream.Length]; file.InputStream.Read(fileDataByteArray, 0, (int)file.InputStream.Length); isUploaded = myAzure.UploadBlob(fileDataByteArray, RadAsyncUpload1.UploadedFiles[i]); } catch (Exception exc) { lblError.Text = exc.Message; } }}
Thank you very much,
Randy Sullivan
<MAP NAME='_mfusion_ctl00_ContentPlaceHolder_DiagramView1_ImageMap_0_0'><AREA SHAPE='POLY' COORDS='1385,113,1468,113,1468,113,1473,114,1476,117,1479,120,1480,125,1480,125,1480,125,1480,178,1480,178,1479,182,1476,186,1473,188,1468,189,1468,189,1385,189,1385,189,1381,188,1377,186,1375,182,1374,178,1374,125,1374,125,1375,120,1377,117,1381,114,1385,113' TITLE="TASK DESCRIPTION: Ensure that all relevant user info has been checked ROLE DUTIES: " ID="_mfusion_ctl00_ContentPlaceHolder_DiagramView1_ImageMap_0_0_20" href="javascript:document.getElementById('_mfusion_ctl00_ContentPlaceHolder_DiagramView1_ClickedItem').value = '20:-1:-1:-1';__doPostBack('ctl00$ContentPlaceHolder$DiagramView1','_mfusion_ctl00_ContentPlaceHolder_DiagramView1_ClickedItem');">