Hi,
I have a webservice bound scheduler and Controller.GetAppointments drops some of the appointments even though sql query as seen in first list returns correct number of appointments.
Controller.GetAppointments takes these 45 appointments and returns 99 appointments( as seen in second list) as parent child appointments and drop some of the original appointments (42627, 41592 )in its internal processing, can anyone tell me how to fix this issue?
Actual appointments returned(count=45) , more than half of these appointments are recurring appointments
List: 29648: 29649: 29650: 32983: 40689: 40690: 301: 29908: 29909: 29910: 40229: 40230: 40231: 30428: 30429: 30430: 40456: 40457: 40458: 42418: 42665: 42666: 30688: 30689: 30690: 40913: 40914: 42586: 42589: 42595: 42602: 42623: 42635: 42639: 42653: 42660: 42663: 42664: 39550: 39551: 39552: 41590: 41591: 41592: 42627
Appointments Returned by Controller (count = 99 ), this shows parent and child appointments
List: --->, 40690_0, 40689_0, 40913_0, 40914_0, 40231_0, 40230_0, 40229_0, 40457_0, 40458_0, 40456_0, 29909_0, 29908_0, 39551_0, 39550_0, 40689_1, 40690_1, 40914_1, 40913_1, 40230_1, 40229_1, 40231_1, 40456_1, 40457_1, 40458_1, 39551_1, 30428_1, 29648_1, 30430_1, 40690_2, 40689_2, 40913_2, 40914_2, 40229, 40231_2, 40230_2, 42586, 42589, 40457_2, 40456, 40458_2, 42664, 42663, 29648, 30690_2, 30689_2, 39552_2, 39550, 39551_2, 30688, 29908, 30428, 41590, 40689, 40690_3, 42602, 42623, 32983, 40913, 40914_3, 42653, 42639, 40230, 40229_2, 40231_3, 42660, 40458_3, 40456_2, 40457, 29909, 29648_2, 39551, 39550_2, 39552_3, 29650_3, 29649, 30689, 30429, 41591, 42418, 40690, 40689_3, 40914, 40913_3, 40231, 40230_3, 40229_3, 40458, 40456_3, 40457_3, 29648_3, 30429_3, 29650, 30430, 29649_3, 39550_3, 30690, 39552, 29910, 41592
Controller.GetAppointments<AppointmentData>(schedulerInfo) truncates some of the appointments in Month View.
IEnumerable<AppointmentData> apts = Controller.GetAppointments<AppointmentData>(schedulerInfo);
Thanks,
Prava
I have a RadGrid inside a UserControl where I change the BackColor of each GridDataItem (aka row) based on a value in a cell so the users know the urgency of the rows data. If it is outside the bounds we don't change anything.
However when a row wraps around due to a cell with more text than width on the cells that I changed the background color of based on a cell value when you hover the mouse over the row it only highlights the first line of text in the row with the highlight hover color. Then on the rows we didn't change the background color of when you mouse over the row highlights correctly the full height of the row not just the first line of text.
I am following recommend way of changing the BackColor of a GridDataItem from a Telerik response to another thread in this forum. Basically in the OnItemDataBound event I do the following:
if
(goal <= 0.0)
dataItem.BackColor = Color.FromName(
"#ffb2ae"
);
// Pastel Red
else
if
(goal > 0.0 && goal < 3.0)
dataItem.BackColor = Color.FromName(
"#ffd394"
);
// Pastel Orange
else
if
(goal >= 3.0 && goal < 7)
dataItem.BackColor = Color.FromName(
"#fdfd96"
);
// Pastel Yellow
else
if
(goal >= 7.0 && goal < 10)
dataItem.BackColor = Color.FromName(
"a0e7a0"
);
// Pastel Green
See attached images for examples of output results.
Any help to make the default hover color fill the full height of the cell when the BackColor is changed for a GridDataItem is greatly appreciated.
I have a radlistview item. On clicking of radlistview item i am generating dynamic controls as show in the code. Since dynamically generate controls not retain across post back so recreating every time. Controls are working fine but not generating in a proper order. All controls should generate one by one on clicking of list view but those are messing around, please some one suggest me how can i resolve this?
Thanks.
MARK UP:
<
div
id
=
"divListView"
style
=
"overflow: auto; width: 100%;"
class
=
"sortable"
>
<
telerik:RadListView
ID
=
"RadListView1"
runat
=
"server"
RenderMode
=
"Lightweight"
DataKeyNames
=
"Label"
ClientDataKeyNames
=
"Label"
ItemPlaceholderID
=
"ListViewPlaceHolder1"
>
<
LayoutTemplate
>
<
div
class
=
"RadListView RadListView_Silk"
>
<
table
id
=
"orgcharttable"
class
=
"layoutTable"
width
=
"100%"
>
<
tr
>
<
td
colspan
=
"3"
class
=
"nopadding"
>
<
asp:PlaceHolder
ID
=
"ListViewPlaceHolder1"
runat
=
"server"
></
asp:PlaceHolder
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
LayoutTemplate
>
<
ItemTemplate
>
<
div
id
=
"divHighlight"
class
=
"ListViewStyle"
onclick
=
"SelectControl(this,event);"
>
<
div
style
=
"vertical-align: top; width: 100%"
>
<
table
>
<
tr
id
=
"tr1"
>
<
td
colspan
=
"2"
class
=
"tdnormal"
>
<
telerik:RadLabel
ID
=
"lbl1"
runat
=
"server"
Text='<%# Bind("Label")%>' Font-Bold="true" CssClass="ItemHeaderStyle"></
telerik:RadLabel
>
</
td
>
</
tr
>
<
tr
id
=
"tr2"
>
<
td
rowspan
=
"2"
colspan
=
"1"
style
=
"width: 5%"
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
div
>
</
ItemTemplate
>
</
telerik:RadListView
>
<
asp:Table
ID
=
"Table1"
runat
=
"server"
EnableViewState
=
"false"
></
asp:Table
>
Code Behind:
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!IsPostBack)
{
RadListView1.DataSource = GetDatatable();
RadListView1.DataBind();
}
else
{
RecreateControls(
"rtb"
,
"RadTextBox"
);
RecreateControls(
"rcb"
,
"RadComboBox"
);
}
}
public
DataTable GetDatatable()
{
DataTable dt =
new
DataTable();
dt.Columns.Add(
"Label"
);
dt.Rows.Add(
"RadTextBox"
);
dt.Rows.Add(
"RadComboBox"
);
return
dt;
}
protected
void
RadAjaxManager1_AjaxRequest(
object
sender, Telerik.Web.UI.AjaxRequestEventArgs e)
{
string
commandText = e.Argument.ToString().Trim();
string
[] splitdata = commandText.Split(
'&'
);
commandText = splitdata[0];
string
controlName = splitdata[1];
switch
(controlName)
{
case
"RadTextBox"
:
int
cnt1 = FindOccurence(
"rtb"
) + 1;
DynamicControls dcTextBox =
new
DynamicControls();
TableCell txtlblRad = dcTextBox.Controlscreation(
"RadLabel"
,
""
, cnt1, cnt1,
"Text Box:"
,
""
, 0);
TableCell txtRad = dcTextBox.Controlscreation(
"RadTextBox"
,
""
, cnt1, cnt1,
""
,
""
, 0);
TableRow txtRow =
new
TableRow();
txtRow.Cells.Add(txtlblRad);
txtRow.Cells.Add(txtRad);
Table1.Rows.Add(txtRow);
break
;
case
"RadComboBox"
:
int
cnt2 = FindOccurence(
"rcb"
) + 1;
DynamicControls dcComboBox =
new
DynamicControls();
TableCell combolblRad = dcComboBox.Controlscreation(
"RadLabel"
,
""
, cnt2, cnt2,
"Combo box:"
,
""
, 0);
TableCell comboRad = dcComboBox.Controlscreation(
"RadComboBox"
,
""
, cnt2, cnt2,
""
,
""
, 0);
TableRow comboRow =
new
TableRow();
comboRow.Cells.Add(combolblRad);
comboRow.Cells.Add(comboRad);
Table1.Rows.Add(comboRow);
break
;
}
}
private
void
RecreateControls(
string
ctrlPrefix,
string
ctrlType)
{
string
[] ctrls = Request.Form.ToString().Split(
'&'
);
int
cnt = FindOccurence(ctrlPrefix);
if
(cnt > 0)
{
for
(
int
k = 1; k <= cnt; k++)
{
for
(
int
i = 0; i < ctrls.Length; i++)
{
if
(ctrls[i].Contains(ctrlPrefix +
"_"
+ k.ToString()))
{
if
(ctrlType ==
"RadTextBox"
)
{
DynamicControls dcTextBox =
new
DynamicControls();
TableCell txtlblRad = dcTextBox.Controlscreation(
"RadLabel"
,
""
, k, k,
"TextBox:"
,
""
, 0);
TableCell txtRad = dcTextBox.Controlscreation(
"RadTextBox"
,
""
, k, k,
""
,
""
, 0);
TableRow txtRow =
new
TableRow();
txtRow.Cells.Add(txtlblRad);
txtRow.Cells.Add(txtRad);
Table1.Rows.Add(txtRow);
}
if
(ctrlType ==
"RadComboBox"
)
{
DynamicControls dcComboBox =
new
DynamicControls();
TableCell combolblRad = dcComboBox.Controlscreation(
"RadLabel"
,
""
, k, k,
"Combo box:"
,
""
, 0);
TableCell comboRad = dcComboBox.Controlscreation(
"RadComboBox"
,
""
, k, k,
""
,
""
, 0);
TableRow comboRow =
new
TableRow();
comboRow.Cells.Add(combolblRad);
comboRow.Cells.Add(comboRad);
Table1.Rows.Add(comboRow);
}
}
}
}
}
}
private
int
FindOccurence(
string
substr)
{
string
reqstr = Request.Form.ToString();
return
((reqstr.Length - reqstr.Replace(substr,
""
).Length) / substr.Length);
}
}
}
Expected Result: The Controls should generate one by one in order on click of listview, but generating in a group. Textboxes are generating as one group and dropdowns are generating as one group.
I have the following tag which includes a handler for onfocusout. The handler is executed when the user clicks away from the control when the down arrow button or the text area has focus but doesn't execute when the user has selected an item (or item check box) in the item list and then navigates away from the RadComboBox control. How is it possible to have checkNeedToSaveOpportunity(event) executed if the user focuses on a list item and then navigates to some other part of the page?
<telerik:RadComboBox RenderMode="Lightweight" ID="cmbReportTool" filter="Contains" runat="server"
EmptyMessage="Select" oWrap="false"
onfocusout="checkNeedToSaveOpportunity(event)"
OnClientItemChecking="OnCMBClientItemChecking"
class="cmb-report-tool"
CheckBoxes="true"
width="100%">
</telerik:RadComboBox>
Hi guys,
No idea what's happening here. Been trying to fix for a week.
It was working great last week but now when a new task is clicked, the ajax loading image just keeps spinning. While it's spinning, if I refresh the page straight away, I can see that the record has gone into the database and it shows up in the chart.
I read on a couple of other posts about this scenario, but could not find a fix.
Cheers,
Jon
Currently while exporting report to PDF, only current page number is displayed at the bottom of each pages. Instead of this, we would like to show page number in 'n' of Total number of pages' format.
Any suggestion for this?
Thanks.
<
telerik:RadGrid
ID
=
"RadGrid1"
AllowSorting
=
"false"
AutoGenerateColumns
=
"false"
AlternatingItemStyle-HorizontalAlign
=
"center"
AlternatingItemStyle-BackColor
=
"#ffffff"
GroupingEnabled
=
"true"
OnExcelExportCellFormatting
=
"RadGrid1_ExcelExportCellFormatting"
OnGridExporting
=
"RadGrid1_GridExporting"
OnPdfExporting
=
"RadGrid1_PdfExporting"
ExportSettings-Excel-Format
=
"Html"
ExportSettings-ExportOnlyData
=
"true"
Width
=
"100%"
runat
=
"server"
>
<
MasterTableView
Width
=
"99%"
>
<
Columns
> ...
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using Mec.CommonLibrary.Cryptography;
using MEC.EMA.BLL;
using Microsoft.Security.Application;
using Telerik.Web.UI;
public class EmailRadGridAttachment
{
List<
Person
> _userList = new List<
Person
>();
UserBLL _userBLL = new UserBLL();
protected void Page_Load(object sender, EventArgs e)
{
BindGrid();
}
protected void BindGrid()
{
_userList = _userListBLL.GetUserById(_userId);
RadGrid1.DataSource = _userList;
}
// aspx page with a button that fires this event for Excel
protected void ButtonExcel_Click(object sender, EventArgs e)
{
ConfigureExport();
RadGrid Grid1 = (RadGrid)Page.Master.FindControl("Main").FindControl("RadGrid1");
Grid1.MasterTableView.ExportToExcel();
}
// aspx page with a button that fires this even for PDF
protected void ButtonPdf_Click(object sender, System.EventArgs e)
{
ConfigureExport();
RadGrid Grid1 = (RadGrid)Page.Master.FindControl("Main").FindControl("RadGrid1");
Grid1.ExportSettings.Pdf.AllowPrinting = true;
Grid1.ExportSettings.Pdf.AllowModify = true;
Grid1.ExportSettings.Pdf.AllowCopy = true;
Grid1.ExportSettings.Pdf.AllowAdd = true;
// I found that if I don't use postscript fonts the data does not make it to the attachment
Grid1.ExportSettings.Pdf.DefaultFontFamily = "Helvetica";
Grid1.ExportSettings.Pdf.PageLeftMargin = new Unit(2, UnitType.Mm);
Grid1.ExportSettings.Pdf.PageRightMargin = new Unit(2, UnitType.Mm);
Grid1.ExportSettings.Pdf.PageHeaderMargin = new Unit(0, UnitType.Mm);
Grid1.ExportSettings.Pdf.PaperSize = GridPaperSize.Legal;
// to get lanscape orientation
Grid1.ExportSettings.Pdf.PageHeight = Unit.Parse("210mm");
// Width based on TOU and NON-TOU Columns and the smaller parse the more room for data
Grid1.ExportSettings.Pdf.PageWidth = Unit.Parse("420mm");
foreach (GridColumn col in RadGrid1.MasterTableView.RenderColumns)
{
// We have the ability to control the width of columns in the export here
if (col.UniqueName != "MiddleInitial")
{
col.HeaderStyle.Width = Unit.Pixel(50);
}
}
Grid1.MasterTableView.ExportToPdf();
}
protected void RadGrid1_PdfExporting(object sender, GridPdfExportingArgs e)
{
// I have added some more information that will be included in the PDF above the RadGrid here
StringBuilder customHTML = new StringBuilder();
customHTML.Append("<
p
style
=
'color: red; font-weight: bold; font-size: 10pt;'
>Title Page</
p
>");
customHTML.Append("<
table
style
=
'font-family:Helvetica;font-size:9pt;width:500px;'
>");
// Very Important to make sure you have a colgroup and the same number of "<
col
>" as "<
td
>"
customHTML.Append("<
colgroup
><
col
style
=
'width: 200px; white-space:nowrap;'
/><
col
style
=
'text-align:left;'
/></
colgroup
>");
// ColGroup = Number of <
td
> in a row is needed for Telerik export to PDF
customHTML.Append("<
tr
><
td
>Customer: " + CustomerName.Text + "</
td
><
td
>Date: " + LabelDate.Text + " </
td
></
tr
>");
customHTML.Append("<
tr
><
td
>Address: " + LabelAddress.Text + "</
td
><
td
>Email: " + LabelEmail.Text + " </
td
></
tr
>");
customHTML.Append("<
tr
><
td
>City: " + LabelCity.Text + "</
td
><
td
>Phone: " + LabelPhone.Text + " </
td
></
tr
>");
customHTML.Append("<
tr
><
td
>State: " + LabelState.Text + "</
td
><
td
>Zip: " + LabelZipCode.Text + " </
td
></
tr
>");
customHTML.Append("</
table
>");
e.RawHTML = customHTML + e.RawHTML;
}
public void ConfigureExport()
{
RadGrid Grid1 = (RadGrid)Page.Master.FindControl("Main").FindControl("RadGrid1");
Grid1.ExportSettings.ExportOnlyData = true;
Grid1.ExportSettings.IgnorePaging = true;
// We don't want the Open, Save or Cancel prompt to open for a new window when calling this page
Grid1.ExportSettings.OpenInNewWindow = false;
}
protected void RadGrid1_GridExporting(object source, GridExportingArgs e)
{
StringBuilder customHTML = new StringBuilder();
MemoryStream gridMemoryStream = new MemoryStream(new ASCIIEncoding().GetBytes(e.ExportOutput));
if (e.ExportType == ExportType.Excel)
{
SendEMailWithAttachment(gridMemoryStream, "attachment.xls");
}
// Stuff the Grid in a memory stream and pass it to the email method
if (e.ExportType == ExportType.Pdf)
{
SendEMailWithAttachment(gridMemoryStream, "attachment.pdf");
}
gridMemoryStream.Close();
// Redirect to the same page so the alert does not pop-up
Response.Redirect(Request.Url.AbsoluteUri);
}
public void SendEMailWithAttachment(Stream attachmentStream, string fileName)
{
//settings from the web.config
SmtpClient smtpClient = new SmtpClient(Convert.ToString(ConfigurationManager.AppSettings["SERVER_EMAIL"]));
string authType = "Basic";
MailMessage email = new MailMessage();
StringBuilder body = new StringBuilder();
string emaURL = Convert.ToString(ConfigurationManager.AppSettings["BASE_URL"]);
email.From = new MailAddress("From@gmail.com");
email.To.Add("To@gmail.com");
email.Subject = "This is the subject";
body.Append("<
table
style
=
'font-family:Helvetica;font-size:9pt;width:600px;'
>");
body.Append("<
tr
><
td
>You can put in whatever you want here</
td
></
tr
>");
body.Append("</
table
>");
// Attachment goes here
email.Attachments.Add(new Attachment(attachmentStream, fileName));
email.Body = body.ToString();
email.IsBodyHtml = true;
NetworkCredential nc = new NetworkCredential(Convert.ToString(ConfigurationManager.AppSettings["CredentialU"]), Convert.ToString(ConfigurationManager.AppSettings["CredentialP"]));
smtpClient.Credentials = nc.GetCredential(Convert.ToString(smtpClient), 25, authType);
smtpClient.Send(email);
}
}
I was trying to create a User Control for standardizing the Grid Control across all the forms. Surely all the forms will have different columns but the layout is the same across except for few properties here and there. How do I expose the Column Collection?
My Code would be:
<
telerik:RadGrid
ID
=
"grid"
runat
=
"server"
AllowCustomPaging
=
"false"
AllowPaging
=
"False"
AllowSorting
=
"False"
AutoGenerateColumns
=
"False"
CellPadding
=
"0"
CellSpacing
=
"0"
CssClass
=
"gridCandidate"
Height
=
"100%"
Width
=
"100%"
>
<
ClientSettings
EnableAlternatingItems
=
"false"
EnableRowHoverStyle
=
"true"
>
<
Scrolling
AllowScroll
=
"true"
UseStaticHeaders
=
"true"
/>
<
Selecting
AllowRowSelect
=
"True"
/>
<
ClientEvents
OnRowDataBound
=
"function() {}"
OnCommand
=
"function(){}"
/>
</
ClientSettings
>
<
MasterTableView
AllowFilteringByColumn
=
"False"
AllowNaturalSort
=
"false"
ClientDataKeyNames
=
"ID"
DataKeyNames
=
"ID"
EnableColumnsViewState
=
"False"
EnableViewState
=
"False"
HierarchyLoadMode
=
"Client"
NoMasterRecordsText="<div
class
=
'noRec'
>No records to display.</
div
>" TableLayout="Auto">
<
Columns
></
Columns
>
<
HeaderStyle
Height
=
"0px"
/>
<
PagerStyle
Visible
=
"False"
/>
</
MasterTableView
>
</
telerik:RadGrid
>
[MergableProperty(false), DefaultValue((string)null),
PersistenceMode(PersistenceMode.InnerProperty)]
public GridColumnCollection Columns
{
get
{
return grid.Columns;
}
set
{
foreach (GridColumn column in value)
{
grid.MasterTableView.Columns.Add(column);
}
//grid.MasterTableView.Columns.Add()
}
}
Any idea how to expose the Columns property?