| protected void Page_Load(object sender, EventArgs e) |
| { |
| if (!IsPostBack) |
| { |
| if (Session["RadGridFilterConditions"] != null) |
| { |
| RadGrid1.MasterTableView.FilterExpression = Session["RadGridFilterConditions"].ToString(); |
| RadGrid1.DataBind(); |
| } |
| } |
| } |
| protected void Page_PreRender(object sender, EventArgs e) |
| { |
| Session["RadGridFilterConditions"] = RadGrid1.MasterTableView.FilterExpression; |
| } |
| <telerik:RadComboBox ID="CB_Groupe" runat="server" Skin="Black" DataSourceID="AccessDataSource3" |
| DataTextField="nom_groupe" DataValueField="groupes_id" AutoPostBack="true" AppendDataBoundItems="true" |
| AutoCompleteSeparator=";" MarkFirstMatch="true" Width="200px" Height="150px" Style="z-index: 100002;"> |
| </telerik:RadComboBox> |
| function showFilterItem() { |
| var grid = $find("<%= RadGrid1.ClientID %>"); |
| grid.get_masterTableView().showFilterItem(); |
| //get all detail tables in the hierarchy |
| var detailTablesArray = grid.get_detailTables(); |
| for (var x = 0; x < detailTablesArray.length; x++) { |
| detailTablesArray[x].showFilterItem(); |
| } |
| } |
| function hideFilterItem() { |
| var grid = $find("<%= RadGrid1.ClientID %>"); |
| grid.get_masterTableView().hideFilterItem(); |
| //get all detail tables in the hierarchy |
| var detailTablesArray = grid.get_detailTables(); |
| for (var x = 0; x < detailTablesArray.length; x++) { |
| detailTablesArray[x].hideFilterItem(); |
| } |
| } |
<
asp:LinkButton ID="LinkButton1" runat="server" OnClick="lnkbtnAddSlot_New_Click"
Width="97px" CssClass="sf-inputsLinkButton" OnClientClick="return AddSlot_New()">Add Slot_New</asp:LinkButton>
OnClientClick I want to access the no. of rows in radgrid and the values of the cells.
I used
var gvWorkingHours = $find("<%= gvWorkingHours_New.ClientID %>").get_masterTableView();
This is becoming null always.
for (var i = 0; i < gvWorkingHours.get_masterTableView().get_dataItems().length; i++)
{
var row = Rows[i];
var textbox1 = row.findControl("txtSlotName"); //
}
Please suggest solution.
Below is the entire source code.
------------
aspx page
---
<%
@ Page Language="C#" AutoEventWireup="true"
MasterPageFile
="~/EnterpiseConsoleFiles/MasterPage.master" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%
@ Register Assembly="RadCalendar.Net2" Namespace="Telerik.WebControls" TagPrefix="radCln" %>
<%
@ Register Assembly="RadAjax.Net2" Namespace="Telerik.WebControls" TagPrefix="radA" %>
<%
@ Register Assembly="RadGrid.Net2" Namespace="Telerik.WebControls" TagPrefix="rad" %>
<
asp:Content ID="content" runat="server" ContentPlaceHolderID="Cont">
<script type="text/javascript">
function TestHandler(sender, eventArgs)
{
var oldTime = eventArgs.oldTime;
var newTime = eventArgs.newTime;
var msg = "Time changed from ";
if (oldTime)
msg = msg + oldTime;
else
msg = msg +
"nothing";
msg = msg +
" to ";
if (newTime)
msg = msg + newTime;
else
msg = msg +
"nothing";
alert(msg);
}
function AddSlot_New()
{
debugger;
var gvWorkingHours = $find("<%= gvWorkingHours_New.ClientID %>").get_masterTableView();
for (var i = 0; i < gvWorkingHours.get_masterTableView().get_dataItems().length; i++)
{
var row = Rows[i];
var textbox1 = row.findControl("txtSlotName"); //
}
}
function DateSelected(sender, args)
{
var text = args.newTime;
alert(
'sree');
}
function error(sender, args)
{
var text = args.get_inputText;
alert(
'dhar');
}
</script>
<div>
<rad:RadGrid ID="gvWorkingHours_New" runat="server" Skin="SkeltaGrid" AutoGenerateColumns="false"
>
<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>
<ClientEvents OnDateSelected="DateSelected" />
<DateInput>
<ClientEvents OnError="error" />
</DateInput>
</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"
OnClientTimeSelected="TestHandler">
</TimeView>
</radCln:RadTimePicker>
</ItemTemplate>
</rad:GridTemplateColumn>
<rad:GridTemplateColumn>
<ItemTemplate>
<asp:CompareValidator ID="dateCompareValidator" runat="server" ControlToValidate="rtpToTime"
ControlToCompare="rtpFromTime" Operator="GreaterThan" Type="String" ErrorMessage="To Date must be greater than From Date">
</asp:CompareValidator>
</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>
</asp:Content>
code behind
-----------------
using
System;
using
System.Data;
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
Telerik.WebControls;
public
partial class _Default : System.Web.UI.Page
{
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();
}
}
Regards
Sreedhar Ambati