I have a 2 treeviews lets say tree1 and tree2.
tree1 has checkbox nodes
I drag and drop the checked nodes from tree1 to tree2.
On tree1_nodedrop, trying to read those checkednodes using Tree1.CheckedNodes() and it is always returning 0.
Earlier it used to work, i'm not sure whether is stop working after SP1 installation or VS2012 installation.
Telerik Current Version: 2012.2.724.40 (2012 Q2 SP1)
Code Editor: Visual Studio 2010
Framework: 4.0
Tree1 ASPX Code:
<telerik:RadTreeView ID="tree1" runat="server" Skin="Windows7" DataFieldID="ID"
DataFieldParentID="ParentID" DataTextField="NodeText" EnableDragAndDrop="true"
CheckBoxes="true" CheckChildNodes="true" DataValueField="ValueID">
Code Behind:
Private Sub tree1_NodeDrop(sender As Object, e As Telerik.Web.UI.RadTreeNodeDragDropEventArgs) Handles tree1.NodeDrop
For Each node As RadTreeNode In tree1.CheckedNodes
// do something
Next
End Sub
What am i missing here?
<MasterTableView DataKeyNames="id"> |
<Columns> |
<telerik:GridBoundColumn HeaderText="Street" DataField="Address.Street" /> |
<telerik:GridBoundColumn HeaderText="HouseNumber" DataField="Address.HouseNumber" /> |
<telerik:GridBoundColumn HeaderText="ZipCode" DataField="Address.ZipCode.Code" /> |
<telerik:GridBoundColumn HeaderText="City" DataField="Address.ZipCode.City" /> |
</Columns> |
</MasterTableView> |
// Javascript |
var selectedItem = $find("MyGridClientID").get_masterTableView().get_selectedItems()[0]; |
var selectedItemID = selectedItem.getDataKeyValue("id"); |
using
System;
using
System.Data;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
using
System.Text.RegularExpressions;
public
partial
class
Spreadsheet : System.Web.UI.Page
{
protected
global::System.Web.UI.WebControls.Literal dataRow;
protected
void
Page_Init(
object
sender, System.EventArgs e)
{
DefineGridStructure();
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
RadGrid grid = (RadGrid)PlaceHolder1.FindControl(
"RadGrid1"
);
RadAjaxManager1.AjaxSettings.AddAjaxSetting(grid, grid);
if
(Page.IsPostBack)
{
Label1.Text +=
"Post back!! <br>"
;
}
if
(!Page.IsPostBack)
{
Label1.Text +=
"Page_Load; "
+ DateTime.Now.ToString() +
"<br>"
;
}
}
private
void
DefineGridStructure()
{
RadGrid RadGrid1 =
new
RadGrid();
RadGrid1.ID =
"RadGrid1"
;
System.Drawing.Color disabledBackColor = System.Drawing.Color.AliceBlue;
System.Drawing.Color defaultBorderColor = System.Drawing.Color.Black;
RadGrid1.Width = Unit.Percentage(100);
RadGrid1.PageSize = 7;
RadGrid1.GridLines = GridLines.Both;
RadGrid1.AllowPaging =
true
;
RadGrid1.AllowSorting =
true
;
RadGrid1.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
RadGrid1.ShowFooter =
true
;
RadGrid1.AutoGenerateColumns =
false
;
RadGrid1.ShowStatusBar =
true
;
RadGrid1.DataSourceID =
"ObjectDataSource1"
;
RadGrid1.ItemDataBound += RadGrid1_ItemDataBound;
RadGrid1.UpdateCommand += RadGrid1_UpdateCommand;
RadGrid1.MasterTableView.PageSize = 7;
RadGrid1.MasterTableView.Height = Unit.Percentage(100);
RadGrid1.MasterTableView.DataKeyNames =
new
string
[] {
"report_id"
};
RadGrid1.MasterTableView.EditMode = GridEditMode.InPlace;
GridEditCommandColumn editColumn;
editColumn =
new
GridEditCommandColumn();
editColumn.UniqueName =
"EditCommandColumn"
;
editColumn.ItemStyle.BackColor = disabledBackColor;
editColumn.ItemStyle.BorderColor = defaultBorderColor;
editColumn.ItemStyle.BorderWidth = Unit.Pixel(1);
RadGrid1.MasterTableView.Columns.Add(editColumn);
GridColumnGroup headerGroupColumn;
GridBoundColumn boundColumn =
new
GridBoundColumn();
boundColumn.DataField =
"report_id"
;
boundColumn.HeaderText =
"report_id"
;
boundColumn.ItemStyle.BackColor = disabledBackColor;
boundColumn.ItemStyle.BorderColor = defaultBorderColor;
boundColumn.ItemStyle.BorderWidth = Unit.Pixel(1);
boundColumn.ReadOnly =
true
;
RadGrid1.MasterTableView.Columns.Add(boundColumn);
RadGrid1.MasterTableView.AllowMultiColumnSorting =
true
;
RadGrid1.MasterTableView.SortExpressions.Clear();
GridSortExpression expression =
new
GridSortExpression();
expression.FieldName =
"report_id"
;
expression.SortOrder = GridSortOrder.Ascending;
RadGrid1.MasterTableView.SortExpressions.AddSortExpression(expression);
DataTable GroupHeaders = WastewaterGrid.GetGroupHeaders();
DataTable Headers;
foreach
(DataRow groupRow
in
GroupHeaders.Rows)
{
String masterGroupName = groupRow[
"group_name"
].ToString();
String groupColumnHeader = groupRow[
"group_column_header"
].ToString();
Headers = WastewaterGrid.GetHeaders(masterGroupName);
headerGroupColumn =
new
GridColumnGroup();
headerGroupColumn.Name = masterGroupName;
headerGroupColumn.HeaderText = groupColumnHeader;
RadGrid1.MasterTableView.ColumnGroups.Add(headerGroupColumn);
foreach
(DataRow headerRow
in
Headers.Rows)
{
String groupName = headerRow[
"group_name"
].ToString();
String columnName = headerRow[
"column_name"
].ToString();
String columnHeader = headerRow[
"column_header"
].ToString();
String attributeType = headerRow[
"attribute_type"
].ToString();
String dataType = headerRow[
"data_type"
].ToString();
String targetValue = headerRow[
"target_value"
].ToString();
if
(!groupName.Equals(masterGroupName))
{
continue
;
}
boundColumn =
new
GridBoundColumn();
boundColumn.DataField = columnName;
boundColumn.HeaderText = columnHeader;
// where is the uniquename?
boundColumn.ColumnGroupName = masterGroupName;
if
(columnName.Equals(
"MISDnotes"
))
{
boundColumn.ItemStyle.Width = Unit.Percentage(100);
}
if
(!attributeType.Equals(
"ManualEntry"
))
{
boundColumn.ItemStyle.BackColor = disabledBackColor;
boundColumn.ReadOnly =
true
;
}
RadGrid1.MasterTableView.Columns.Add(boundColumn);
}
}
this
.PlaceHolder1.Controls.Add(RadGrid1);
}
public
class
FooterItem
{
private
String _columnName;
private
int
_count;
private
dynamic _min;
private
dynamic _max;
private
dynamic _sum;
public
FooterItem(String str)
{
_columnName = str;
_count = 0;
}
public
String columnName
{
get
{
return
_columnName;
}
set
{
_columnName = value;
}
}
public
int
count
{
get
{
return
_count;
}
set
{
_count = value;
}
}
public
dynamic min
{
get
{
return
_min;
}
set
{
_min = value;
}
}
public
dynamic max
{
get
{
return
_max;
}
set
{
_max = value;
}
}
public
dynamic sum
{
get
{
return
_sum;
}
set
{
_sum = value;
}
}
}
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
Int32 userRole = 2;
Int32 today =
int
.Parse(
"20110907"
);
//String today = DateTime.Today.ToString("yyyyMMdd");
String columnName;
String attributeType;
GridTableCell gridCell;
dynamic cellText;
Boolean cellPopped =
false
;
TextBox cellTextBox;
Dictionary<String, FooterItem> FooterAggregates =
new
Dictionary<String, FooterItem>();
FooterItem footerItem;
DataTable Headers = WastewaterGrid.GetHeaders();
foreach
(DataRow row
in
Headers.Rows)
{
columnName = row[
"column_name"
].ToString();
attributeType = row[
"attribute_type"
].ToString();
if
(!attributeType.Contains(
"varchar"
))
{
FooterAggregates.Add(columnName,
new
FooterItem(columnName));
}
}
if
(e.Item
is
GridDataItem)
{
GridDataItem gridRow = (GridDataItem)e.Item;
Int32 ReportID =
int
.Parse(gridRow.GetDataKeyValue(
"report_id"
).ToString());
System.Drawing.Color defaultBorderColor = System.Drawing.Color.Black;
System.Drawing.Color ableBackColor = System.Drawing.Color.White;
System.Drawing.Color disabledBackColor = System.Drawing.Color.AliceBlue;
System.Drawing.Color ableBorderColor = System.Drawing.Color.Lime;
foreach
(DataRow row
in
Headers.Rows)
{
columnName = row[
"column_name"
].ToString();
attributeType = row[
"attribute_type"
].ToString();
gridCell = (GridTableCell)gridRow[columnName];
//cellText = gridCell.Text;
cellText = ((DataRowView)gridRow.DataItem)[columnName];
cellPopped = !String.IsNullOrEmpty((String)cellText);
if
(cellPopped)
{
footerItem = FooterAggregates[columnName];
footerItem.count += 1;
if
(footerItem.min ==
null
)
{
footerItem.min = cellText;
}
else
{
if
(footerItem.min > cellText)
{
footerItem.min = cellText;
}
}
if
(footerItem.max ==
null
)
{
footerItem.max = cellText;
}
else
{
if
(footerItem.max < cellText)
{
footerItem.max = cellText;
}
}
if
(footerItem.sum ==
null
)
{
footerItem.sum = cellText;
}
else
{
footerItem.sum += cellText;
}
}
gridCell.BorderColor = defaultBorderColor;
gridCell.BorderWidth = Unit.Pixel(1);
if
(userRole == 1)
{
if
(attributeType.Equals(
"ManualEntry"
))
{
gridCell.BackColor = ableBackColor;
gridCell.BorderColor = ableBorderColor;
}
}
else
{
if
(attributeType.Equals(
"ManualEntry"
))
{
if
(!ReportID.Equals(today))
{
if
(String.IsNullOrEmpty(cellText))
{
gridCell.BackColor = ableBackColor;
gridCell.BorderColor = ableBorderColor;
}
else
{
gridCell.BackColor = disabledBackColor;
}
}
else
{
gridCell.BackColor = ableBackColor;
gridCell.BorderColor = ableBorderColor;
}
}
if
(e.Item.IsInEditMode && !ReportID.Equals(today) && cellPopped)
{
cellTextBox = (TextBox)gridCell.Controls[0];
cellTextBox.BorderStyle = BorderStyle.None;
cellTextBox.BackColor = disabledBackColor;
cellTextBox.ReadOnly =
true
;
//Label1.Text += "EditMode::ReportID=" + ReportID + "columnName=" + columnName + "::cellText=" + cellText + " <br>";
}
}
}
}
if
(e.Item
is
GridFooterItem)
{
GridFooterItem gridRow = (GridFooterItem)e.Item;
int
count = 0;
dynamic min;
dynamic max;
dynamic sum;
foreach
(DataRow row
in
Headers.Rows)
{
columnName = row[
"column_name"
].ToString();
attributeType = row[
"attribute_type"
].ToString();
gridCell = (GridTableCell)gridRow[columnName];
//cellText = gridCell.Text;
cellText = ((DataRowView)gridRow.DataItem)[columnName];
footerItem = FooterAggregates[columnName];
count += footerItem.count;
}
}
}
private
void
RadGrid1_UpdateCommand(
object
source, GridCommandEventArgs e)
{
Label1.Text +=
" Table to be updated: "
+ e.Item.OwnerTableView.DataMember +
"<br>"
;
GridEditableItem editedItem = e.Item
as
GridEditableItem;
GridEditManager editMan = editedItem.EditManager;
Int32 ReportID =
int
.Parse(editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex][
"report_id"
].ToString());
String Login =
"David-T420s\\davidk"
;
foreach
(GridColumn column
in
e.Item.OwnerTableView.RenderColumns)
{
if
(column.UniqueName.Equals(
"report_id"
))
{
continue
;
}
if
(column
is
IGridEditableColumn)
{
Boolean isEditable = column.IsEditable;
String editColumnName = column.UniqueName.ToString();
String ResultString;
IGridEditableColumn editableCol = (column
as
IGridEditableColumn);
if
(editableCol.IsEditable)
{
IGridColumnEditor editor = editMan.GetColumnEditor(editableCol);
if
(editor
is
GridTextColumnEditor)
{
String Datum = (editor
as
GridTextColumnEditor).Text.Trim();
DataTable Headers = WastewaterGrid.GetHeaders();
foreach
(DataRow row
in
Headers.Rows)
{
String columnName = row[
"column_name"
].ToString();
String dataType = row[
"data_type"
].ToString();
if
(columnName.Equals(editColumnName))
{
ResultString = ValidateUserInput(dataType, Datum);
if
(!ResultString.Equals(
"valid"
))
{
RadAjaxManager1.Alert(ResultString);
e.Canceled =
true
;
break
;
}
else
{
try
{
WastewaterGrid.UpsertDatum(ReportID, editColumnName, Datum, Login);
}
catch
(Exception ex)
{
Label1.Text +=
"<strong>Unable to set value of column '"
+ column.UniqueName +
"'</strong> <br>"
+ ex.Message;
RadAjaxManager1.Alert(
"Unable to set value of column: "
+ column.UniqueName +
"; "
+ ex.Message);
e.Canceled =
true
;
break
;
}
}
}
}
}
}
}
}
try
{
WastewaterGrid.ReCalculate(ReportID);
}
catch
(Exception ex)
{
RadAjaxManager1.Alert(
"Unable to run ReCalculate: "
+ ex.Message);
e.Canceled =
true
;
}
}
private
String ValidateUserInput(String dataType, String Datum)
{
if
(String.IsNullOrEmpty(Datum))
{
return
"valid"
;
}
Match match;
String ResultString;
String TestString;
Int32 stringLength = Datum.Length;
String IntPattern = @
"^\d+$"
;
RadAjaxManager1.Alert(
"VALIDATEUSERINPUT: dataType=\""
+ dataType +
"\"; Datum=\""
+ Datum +
"\""
);
switch
(dataType)
{
case
"bigint"
:
match = Regex.Match(Datum, IntPattern);
if
(match.Success)
{
try
{
TestString = Int64.Parse(Datum).ToString();
}
catch
(OverflowException)
{
return
"Overflow Exception: improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
else
{
return
"Improper format: Int64"
;
}
break
;
case
"decimal(10,2)"
:
ResultString = ValidateDecimalFormat(dataType, Datum, stringLength, 10, 2);
if
(!ResultString.Equals(
"valid"
))
{
return
ResultString;
}
else
{
try
{
TestString = Decimal.Parse(Datum).ToString();
}
catch
(OverflowException)
{
return
"Overflow Exception: improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
break
;
case
"decimal(10,3)"
:
ResultString = ValidateDecimalFormat(dataType, Datum, stringLength, 10, 3);
if
(!ResultString.Equals(
"valid"
))
{
return
ResultString;
}
else
{
try
{
TestString = Decimal.Parse(Datum).ToString();
}
catch
(OverflowException)
{
return
"Overflow Exception: improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
break
;
case
"decimal(4,1)"
:
ResultString = ValidateDecimalFormat(dataType, Datum, stringLength, 4, 1);
if
(!ResultString.Equals(
"valid"
))
{
return
ResultString;
}
else
{
try
{
TestString = Decimal.Parse(Datum).ToString();
}
catch
(OverflowException)
{
return
"Overflow Exception: improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
break
;
case
"decimal(5,1)"
:
ResultString = ValidateDecimalFormat(dataType, Datum, stringLength, 5, 1);
if
(!ResultString.Equals(
"valid"
))
{
return
ResultString;
}
else
{
try
{
TestString = Decimal.Parse(Datum).ToString();
}
catch
(OverflowException)
{
return
"Overflow Exception: improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
break
;
case
"decimal(6,1)"
:
ResultString = ValidateDecimalFormat(dataType, Datum, stringLength, 6, 1);
if
(!ResultString.Equals(
"valid"
))
{
return
ResultString;
}
else
{
try
{
TestString = Decimal.Parse(Datum).ToString();
}
catch
(OverflowException)
{
return
"Overflow Exception: improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
break
;
case
"int"
:
match = Regex.Match(Datum, IntPattern);
if
(match.Success)
{
try
{
TestString = Int32.Parse(Datum).ToString();
//throw new CustomExceptions.
}
catch
(OverflowException)
{
return
"Overflow Exception: improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
else
{
return
"Improper format: Int32"
;
}
break
;
case
"varchar(25)"
:
if
(stringLength > 25)
{
return
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
break
;
case
"varchar(255)"
:
if
(stringLength > 255)
{
return
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
break
;
default
:
RadAjaxManager1.Alert(
"Unhandled data type"
);
return
"Unhandled data type: \""
+ dataType +
"\""
;
}
return
"valid"
;
}
private
String ValidateDecimalFormat(String dataType, String Datum,
int
stringLength,
int
precision,
int
scale)
{
Match match;
String IntPattern = @
"^\d+$"
;
String ResultString;
Int32 decimalIndex = Datum.IndexOf(
"."
);
if
(decimalIndex > 0)
{
Int32 fractionalLength = stringLength - decimalIndex - 1;
if
(fractionalLength > scale)
{
return
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
Int32 integralLength = stringLength - fractionalLength - 1;
if
(integralLength > (precision - scale))
{
return
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
String integralString = Datum.Substring(0, decimalIndex);
String fractionalString = Datum.Substring(decimalIndex + 1, fractionalLength);
match = Regex.Match(integralString, IntPattern);
if
(match.Success)
{
match = Regex.Match(fractionalString, IntPattern);
if
(match.Success)
{
ResultString =
"valid"
;
}
else
{
ResultString =
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
else
{
ResultString =
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
else
if
(stringLength > (precision - scale))
{
ResultString =
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
else
{
match = Regex.Match(Datum, IntPattern);
if
(match.Success)
{
ResultString =
"valid"
;
}
else
{
ResultString =
"Improper "
+ dataType +
"format in \""
+ Datum +
"\""
;
}
}
return
ResultString;
}
}
I need to add a default value to one of the textboxes when adding a new item in the grid
<telerik:GridTemplateColumn HeaderText="Activity ID" SortExpression="activityID" UniqueName="activityID" >
<ItemTemplate>
<%# Eval("activityID")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtActivity" Text='<%# Bind("activityID") %>' />
<asp:RequiredFieldValidator runat="server" ID="rfvActivity" ControlToValidate="txtActivity" Display="Dynamic" ErrorMessage="*" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
When clicking “Add new recored” I need to pre-populate the txtActivity textbox. How can I access this from the code behind?
I tried this with no success
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.InitInsertCommandName)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
TextBox t = (TextBox)(editedItem.FindControl("txtActivity"));
}
}
And this:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridCommandItem && e.Item.OwnerTableView.IsItemInserted)
{
TextBox txtActivity = (TextBox)e.Item.FindControl("txtActivity");
txtActivity.Text = "300";
}
}
I am running out of ideas.
Please help. Thanks
<
telerik:GridDateTimeColumn
FilterControlWidth
=
"140px"
DataField
=
"Datum"
HeaderText
=
"Datum"
SortExpression
=
"Datum"
UniqueName
=
"Datum"
PickerType
=
"DateTimePicker"
EnableRangeFiltering
=
"true"
CurrentFilterFunction
=
"Between"
ReadOnly
=
"True"
AllowFiltering
=
"True"
FilterListOptions
=
"VaryByDataType"
>
<
HeaderStyle
Width
=
"220px"
/>
</
telerik:GridDateTimeColumn
>