aspx page
------------------------------
<asp:GridView runat="server" ID="gvWorkingHours_New" AutoGenerateColumns="false"
OnRowDataBound="gvWorkingHours_New_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Slot Name">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtSlotName" CssClass="inputsNoExpression" Text='<%# Eval("SlotName") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="From Time">
<ItemTemplate>
<radCln:RadTimePicker ID="ddlFromTimeHrs" Width="31%" runat="server" TabIndex="2"
EnableTyping="true" TimeView-TimeFormat="HH:mm" DateInput-DateFormat="HH:mm"
DateInput-DisplayDateFormat="HH:mm" DateInput-EmptyMessage="From Time">
<TimeView ID="TimeView1" runat="server" ShowHeader="False" Interval="00:30" Columns="4" OnClientTimeSelected="sree()">
</TimeView>
</radCln:RadTimePicker>
<font class="sf-lab">hrs</font>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="To Time">
<ItemTemplate>
<radCln:RadTimePicker ID="ddlToTimeHrs" Width="31%" runat="server" TabIndex="2"
EnableTyping="true" TimeView-TimeFormat="HH:mm" DateInput-DateFormat="HH:mm"
DateInput-DisplayDateFormat="HH:mm" DateInput-EmptyMessage="From Time">
<TimeView ID="TimeView1" runat="server" ShowHeader="False" Interval="00:30" Columns="4">
</TimeView>
</radCln:RadTimePicker>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle CssClass="sf-formlabel" />
</asp:GridView>
--------
aspx.cs file
protected void gvWorkingHours_New_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataRowView drv = e.Row.DataItem as DataRowView;
if (e.Row.RowType == DataControlRowType.DataRow)
{
RadTimePicker ddlFromTimeHrs = (RadTimePicker)e.Row.FindControl("ddlFromTimeHrs");
RadTimePicker ddlToTimeHrs = (RadTimePicker)e.Row.FindControl("ddlToTimeHrs");
((RadTimePicker)e.Row.FindControl("ddlFromTimeHrs")).Attributes.Add("OnClientTimeSelected", "javascript:return CheckValidTimeHrs_New(" + ddlFromTimeHrs.ClientID + "," +
ddlToTimeHrs.ClientID + ",1" + ")");
((RadTimePicker)e.Row.FindControl("ddlToTimeHrs")).Attributes.Add("OnClientTimeSelected", "javascript:return CheckValidTimeHrs_New(" + ddlFromTimeHrs.ClientID + "," +
ddlToTimeHrs.ClientID + ",2" + ")");
}
}
---
javascript function
CheckValidTimeHrs_New(value1,value2,value3)
{
alert('Onclienttimeselected');
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<rad:RadGrid ID="gvWorkingHours_New" runat="server" Skin="SkeltaGrid" AutoGenerateColumns="false"
OnItemDataBound = "gvWorkingHours_New_OnItemDataBound">
<MasterTableView>
<Columns>
<rad:GridTemplateColumn>
<ItemTemplate>
<asp:TextBox runat="server" ID="txtSlotName"
CssClass="inputsNoExpression" Text='<%# Eval("SlotName") %>'></asp:TextBox>
</ItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn>
<ItemTemplate>
<radCln:RadTimePicker ID="rtpFromTime" Width="31%" runat="server" TabIndex="2"
EnableTyping="true" TimeView-TimeFormat="HH:mm" DateInput-DateFormat="HH:mm"
DateInput-DisplayDateFormat="HH:mm" DateInput-EmptyMessage="From Time"
DBSelectedDate='<%# Eval("FromTime") %>'>
<TimeView ID="tvFrom" runat="server" ShowHeader="False" Interval="00:30" Columns="3" >
</TimeView>
</radCln:RadTimePicker>
</ItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn>
<ItemTemplate>
<radCln:RadTimePicker ID="rtpToTime" Width="31%" runat="server" TabIndex="2"
EnableTyping="true" TimeView-TimeFormat="HH:mm" DateInput-DateFormat="HH:mm"
DateInput-DisplayDateFormat="HH:mm" DateInput-EmptyMessage="To Time"
DBSelectedDate='<%# Eval("ToTime") %>'>
<TimeView ID="tvTo" runat="server" ShowHeader="False" Interval="00:30" Columns="3"
>
</TimeView>
</radCln:RadTimePicker>
</ItemTemplate>
</rad:GridTemplateColumn>
</Columns>
</MasterTableView>
</rad:RadGrid>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="lnkbtnAddSlot_New_Click" Width="97px"
CssClass="sf-inputsLinkButton" OnClientClick="return AddSlot_New()">Add Slot_New</asp:LinkButton>
</div>
</form>
</body>
</html>
code behind
----------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SetInitialRowForSlots_New();
}
}
private void SetInitialRowForSlots_New()
{
DataTable dtSlots = new DataTable();
dtSlots.Columns.Add(new DataColumn("SlotName", typeof(string)));
dtSlots.Columns.Add(new DataColumn("FromTime", typeof(string)));
dtSlots.Columns.Add(new DataColumn("ToTime", typeof(string)));
DataRow drSlot = dtSlots.NewRow();
drSlot["SlotName"] = string.Empty;
drSlot["FromTime"] = new TimeSpan(0, 0, 0);
drSlot["ToTime"] = new TimeSpan(0, 0, 0);
dtSlots.Rows.Add(drSlot);
gvWorkingHours_New.DataSource = dtSlots;
gvWorkingHours_New.DataBind();
}
protected void lnkbtnAddSlot_New_Click(object sender, EventArgs e)
{
DataTable dtSlots = new DataTable();
dtSlots.Columns.Add(new DataColumn("SlotName", typeof(string)));
dtSlots.Columns.Add(new DataColumn("FromTime", typeof(string)));
dtSlots.Columns.Add(new DataColumn("ToTime", typeof(string)));
foreach (GridDataItem pkgItem in gvWorkingHours_New.MasterTableView.Items)
{
TextBox SlotName = pkgItem.FindControl("txtSlotName") as TextBox;
RadTimePicker FrTime = pkgItem.FindControl("rtpFromTime") as RadTimePicker;
RadTimePicker ToTime = pkgItem.FindControl("rtpToTime") as RadTimePicker;
DataRow dr = dtSlots.NewRow();
dr["SlotName"] = SlotName.Text;
dr["FromTime"] = new TimeSpan(((DateTime)(FrTime.DbSelectedDate)).TimeOfDay.Hours, ((DateTime)(FrTime.DbSelectedDate)).TimeOfDay.Minutes, 0);
dr["ToTime"] = new TimeSpan(((DateTime)(ToTime.DbSelectedDate)).TimeOfDay.Hours, ((DateTime)(ToTime.DbSelectedDate)).TimeOfDay.Minutes, 0);
dtSlots.Rows.Add(dr);
}
DataRow drEmpty = dtSlots.NewRow();
drEmpty["SlotName"] = string.Empty;
drEmpty["FromTime"] = new TimeSpan(0, 0, 0);
drEmpty["ToTime"] = new TimeSpan(0, 0, 0);
dtSlots.Rows.Add(drEmpty);
gvWorkingHours_New.DataSource = dtSlots;
gvWorkingHours_New.DataBind();
}
protected void gvWorkingHours_New_OnItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item.ItemType == GridItemType.Item)
{
DataRowView dr = (DataRowView)e.Item.DataItem;
if (dr != null)
{
RadTimePicker rtpFrom = (RadTimePicker)e.Item.FindControl("rtpFromTime");
//((RadTimePicker)e.Item.FindControl("rtpFrom")).Attributes.Add("OnClientTimeSelected", "javascript:return sree(" + tvFrom.ClientID + ")");
}
}
}
Hi
I placed two radtimepickers (fromtime and totime) inside a radgrid and want to validate in javascript (FromTime should be less than ToTime. I want to show this message in an alert whenever user gives invalid time)
How to achieve this?
I tried attaching onclienttimeselected in onitemdatabound but it is not firing
Please help me
Regards
Sreedhar Ambati
Hi Telerik support,
I am running Telerik: v2008.3.1214.35
I am having trouble with the radgrid and tooltipManager with paging.
The grid is dynamically loaded when a menu selection is made.
When I don’t have paging my tooltips behave properly. With paging they are display data from the first page only.
I have the tooltip and the grid defined in AJAX manager, because I am using paging I went from simple databinding to advanced. I know there is a sequence to the databinding when using advanced.
I know I am hitting the Itemdatabound event before the rebind… Could you please provide an example on how to resolve this.
Thank you
Julie
Code below:
The setting in Ajax manager.
<telerik:AjaxSetting AjaxControlID="gridStudyDetails">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="gridStudyDetails" LoadingPanelID="LoadingPanel1"/>
<telerik:AjaxUpdatedControl ControlID="RadToolTipManager1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:RadToolTipManager ID="RadToolTipManager1" runat="server"
RelativeTo="Element"
Width="420px"
Height="150px"
Position="BottomLeft"
HideEvent="ManualClose"
Title="Study Details"
Skin="Vista"
Animation="Slide"
ShowEvent="OnClick" AutoTooltipify="False"
onajaxupdate="RadToolTipManager1_AjaxUpdate" EnableViewState="True">
</telerik:RadToolTipManager>
The grid
<telerik:RadGrid ID="gridStudyDetails" runat="server" AutoGenerateColumns="False"
ClientSettings-Selecting-AllowRowSelect="true" CssClass="gridText"
skin="Vista" Width="675px" GridLines="None"
onitemcommand="gridStudyDetails_ItemCommand" AllowSorting="True"
onsortcommand="gridStudyDetails_SortCommand"
onitemdatabound="gridStudyDetails_ItemDataBound" AllowPaging="True"
onpageindexchanged="gridStudyDetails_PageIndexChanged" PageSize="6"
EnableViewState="False" onneeddatasource="gridStudyDetails_NeedDataSource" >
<HeaderContextMenu EnableTheming="True">
<CollapseAnimation Duration="200" Type="OutQuint" />
</HeaderContextMenu>
<ValidationSettings EnableValidation="False" />
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ClientSettings enablepostbackonrowclick="True">
<Selecting AllowRowSelect="True" />
</ClientSettings><FilterMenu EnableTheming="True">
<CollapseAnimation Duration="200" Type="OutQuint" />
</FilterMenu>
<PagerStyle Position="TopAndBottom" EnableSEOPaging="True" />
<MasterTableView DataKeyNames="StudyID, ProtocolID" EnableViewState="True" CurrentResetPageIndexAction="SetPageIndexToFirst">
<Columns>
<telerik:GridBoundColumn DataField="StudyID" HeaderText="Study ID" UniqueName="StudyID" Visible="True" ReadOnly="true">
<HeaderStyle Width="65px" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="RecType" HeaderText="RecType UniqueName="RecType" Visible="False" ReadOnly="true">
<HeaderStyle Width="65px" />
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="DetailStudy">
<ItemTemplate>
<asp:HyperLink ID="hlkStudyDetail" runat="server" NavigateUrl="#" Text="Details" ></asp:HyperLink>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
Code Behind:
protected void gridStudyDetails_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
{
Control hpStudyDetail = e.Item.FindControl("hlkStudyDetail");
if (!Object.Equals(hpStudyDetail, null))
{
if (!Object.Equals(this.RadToolTipManager1, null))
{
DataRowView currentRow = (DataRowView)e.Item.DataItem;
this.RadToolTipManager1.TargetControls.Add(hpStudyDetail.ClientID,currentRow.Row["StudyID"].ToString(), true);
}
}
}
}
protected void gridStudyDetails_PageIndexChanged(object source, GridPageChangedEventArgs e)
{
gridStudyDetails.DataSource = null;
RadToolTipManager1.TargetControls.Clear();
gridStudyDetails.Rebind();
}
protected void RadToolTipManager1_AjaxUpdate(object sender, ToolTipUpdateEventArgs e)
{
Control ctrl = Page.LoadControl("StudyDetail.ascx");
StudyDetail details = (StudyDetail)ctrl;
details.StrStudyID = e.Value;
e.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl);
}
protected void gridStudyDetails_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
if (Session["Selection"] != null)
{
string selection = Session["Selection"].ToString();
if (selection == "Pending" || selection == "Approved" || selection == "Archived")
{
SetMenu(selection);
}
else
{
gridStudyDetails.DataSource = null;
}
}
}
protected void SetMenu(string selection)
{
switch (selection)
{
case "Pending":
{
lblGridHeader.Text = "Pending Studies";
lblGridDetails.Text = "Studies";
gridStudyDetails.Columns.FindByUniqueName("ApprovalToDate").Display = false;
gridStudyDetails.Columns.FindByUniqueName("ReceiveDate").Display = true;
DataColumn dc0 = new DataColumn("DashBoardSelection");
dc0.DataType = typeof(string);
dc0.DefaultValue = selection;
gridDataTable.Columns.Add(dc0);
DataColumn dc1 = new DataColumn("DashBoardCategory");
dc1.DataType = typeof(string);
dc1.DefaultValue = "Studies";
gridDataTable.Columns.Add(dc1);
gridStudyDetails.DataSource = gridDataTable;
//gridStudyDetails.DataBind();
StudyPanel.CssClass = "";
break;
}
}
}
protected void MenuDashboard_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
{
Session["Selection"] = e.Item.Value;
if (e.Item.Value == "Pending" || e.Item.Value == "Approved" || e.Item.Value == "Archived")
{
gridStudyDetails.DataSource = null;
gridStudyDetails.Rebind();
}
else
{
SetMenu(e.Item.Value);
}
}
| public void InstantiateIn(Control container) |
| { |
| Panel pnl = new Panel(); |
| pnl.ID = "ElementContainerPnl"; |
| pnl.CssClass = "elementListItem"; |
| Label elementName = new Label(); |
| elementName.ID = "ElementName"; |
| elementName.DataBinding += new EventHandler(elementName_DataBinding); |
| RadToolTip toolTip = new RadToolTip(); |
| toolTip.ID = "ElementToolTip"; |
| toolTip.TargetControlID = elementName.ID; |
| Image img = new Image(); |
| img.ID = "ElementToolTipImage"; |
| img.DataBinding += new EventHandler(img_DataBinding); |
| Label toolTipText = new Label(); |
| toolTipText.ID = "ElementToolTipText"; |
| toolTipText.DataBinding += new EventHandler(toolTipText_DataBinding); |
| toolTip.Controls.Add(img); |
| toolTip.Controls.Add(toolTipText); |
| pnl.Controls.Add(elementName); |
| container.Controls.Add(pnl); |
| container.Controls.Add(toolTip); |
| } |
var
slide;
var expanded = false;
function SetUpAnimation(element) {
element.style.position =
"relative";
if(Telerik.Web.UI.AnimationSettings != null) {
var expandAnimation = new Telerik.Web.UI.AnimationSettings({});
var collapseAnimation = new Telerik.Web.UI.AnimationSettings({});
slide = new Telerik.Web.UI.Slide(element, expandAnimation, collapseAnimation, false);
slide.initialize();
slide.set_direction(Telerik.Web.UI.SlideDirection.Up);
}
}
function ExpandPendingDock(element) {
if(!expanded) {
element.parentNode.style.visibility =
"visible";
element.parentNode.style.display =
"block";
slide.expand();
expanded =
true;
}
}
function CollapsePendingDock(element) {
if(expanded) {
element.parentNode.style.visibility =
"visible";
element.parentNode.style.display =
"block";
slide.collapse();
expanded =
false;
}
}
Regards,
Venu