or
01.
//C# (MyCustomGridItemTemplateColumn.cs file)
02.
public
class
MyCustomGridItemTemplateColumn : ITemplate
03.
{
04.
public
event
RadComboBoxSelectedIndexChangedEventHandler OnMyControlSelectedIndexChanged;
05.
06.
public
string
ClientHandlerMethod =
"MyLibrary.UI.MyControl.OnMyControlChanging"
;
07.
public
string
ColumnName {
get
;
private
set
; }
08.
09.
public
MyCustomGridItemTemplateColumn(
string
ColumnName)
10.
{
11.
this
.ColumnName = ColumnName;
12.
this
.OnMyControlSelectedIndexChanged += MyControlGridItemTemplateColumn_OnMyControlSelectedIndexChanged;
13.
}
14.
15.
//Exposes the event to be handled on the codebehind
16.
void
MyControlGridItemTemplateColumn_OnMyControlSelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e) {}
17.
18.
public
void
InstantiateIn(Control container)
19.
{
20.
RadComboBox cbMyControl =
new
RadComboBox();
21.
cbMyControl.ID =
"cbMyControl_"
+ ColumnName;
22.
cbMyControl.DataBinding += cbMyControl_DataBinding;
23.
cbMyControl.SelectedIndexChanged += cbMyControl_SelectedIndexChanged;
24.
cbMyControl.OnClientSelectedIndexChanging = @
"function(sender, e){e._cancel = true;console.log('MyControl [IndexChanging] => %o %o', sender, e);}"
;
25.
cbMyControl.OnClientSelectedIndexChanged = @
"function(sender, e){console.log('MyControl [IndexChanged] => %o %o',sender, e);}"
;
26.
cbMyControl.EnableViewState =
false
;
27.
container.Controls.Add(cbMyControl);
28.
}
29.
30.
void
cbMyControl_SelectedIndexChanged(
object
sender, RadComboBoxSelectedIndexChangedEventArgs e)
31.
{
32.
this
.OnMyControlSelectedIndexChanged(sender, e);
33.
}
34.
35.
void
cbMyControl_DataBinding(
object
sender, EventArgs e)
36.
{
37.
RadComboBox cbMyControl = (RadComboBox)sender;
38.
//GridDataItem container = (GridDataItem)cbMyControl.NamingContainer;
39.
//MyClassObjectModel model = (MyClassObjectModel)container.DataItem;
40.
41.
cbMyControl.Items.Add(
new
RadComboBoxItem(
"Please Select"
,
"NotSet"
));
42.
cbMyControl.Items.Add(
new
RadComboBoxItem(
"First Choice"
,
"1019q231"
));
43.
cbMyControl.Items.Add(
new
RadComboBoxItem(
"Second Choice"
,
"21vc3131"
));
44.
cbMyControl.Items.Add(
new
RadComboBoxItem(
"Third Choice"
,
"34Af3343"
));
45.
46.
cbMyControl.OnClientSelectedIndexChanging = String.Format(@
"function(sender, e){{ e._cancel = !({0}(sender, e));{1}}}"
,
47.
ClientHandlerMethod,
48.
@
" console.log("
"MyControl [IndexChanging] %o %o "
", sender, e);"
49.
);
50.
}
51.
}
01.
/* JS - Handler.js file */
02.
(
function
(window){
03.
window.MyLibrary = {
04.
"UI"
: {
05.
"MyControl"
: {
06.
"OnMyControlChanging"
:
function
(sender, e) {
07.
var
arg = MyLibrary.Common.GetDataKeyValues(e); }
08.
}
09.
},
10.
"Common"
: {
11.
"GetDataKeyValues"
:
function
(e) {
12.
var
max = 4;
13.
var
iteration = 0;
14.
15.
var
result = {
16.
"FirstKeyID"
: {},
17.
"SecondKeyID"
: {},
18.
"ThirdKeyID"
: {}
19.
};
20.
21.
var
gridTableView = e.get_item();
22.
iteration = 0;
23.
while
(!(gridTableView
instanceof
Telerik.Web.UI.GridTableView) && !(iteration >= max)) {
24.
gridTableView = gridTableView.get_parent() || gridTableView;
//null check on get_parent()
25.
iteration += 1;
26.
}
27.
28.
gridTableView.get_dataItems();
//e has now been mutated; the results of this method call do not matter
29.
30.
var
gridDataItem = e.get_item();
31.
iteration = 0;
32.
while
(!(gridDataItem
instanceof
Telerik.Web.UI.GridDataItem) && !(iteration >= max)) {
33.
gridDataItem = gridDataItem.get_parent() || gridDataItem;
//null check on get_parent()
34.
iteration += 1;
35.
}
36.
37.
result.FirstKeyID = gridDataItem.GetDataKeyValue(
"FirstKeyID"
);
38.
result.SecondKeyID = gridDataItem.GetDataKeyValue(
"SecondKeyID"
);
39.
result.ThirdKeyID = gridDataItem.GetDataKeyValue(
"ThirdKeyID"
);
40.
41.
return
result;
42.
}
43.
}
44.
};
45.
}(window));
<
telerik:LayoutRow
>
<
Columns
>
<
telerik:LayoutColumn
Span
=
"12"
SpanXs
=
"12"
SpanSm
=
"12"
>
<
div
style
=
"background-color: #EEEEEE; margin-top: 10px;"
>
<
telerik:RadEditor
ID
=
"RadEditor1"
runat
=
"server"
EditType
=
"Inline"
Width
=
"100%"
Enabled
=
"True"
>
<
Content
>
<
div
>
<
h2
class
=
"titleText"
>RadEditor for ASP.NET AJAX</
h2
>
<
p
style
=
"text-align: justify;"
>
<
span
style
=
"color: #4f6128; font-size: 19px;"
><
strong
>RadEditor</
strong
></
span
><
span
style
=
"color: #4f6128;"
>
</
span
>is not simply an HTML
<
a
href
=
"#HTMLDescription"
>
<
sup
>1</
sup
>
</
a
> Editor. It is what Microsoft chose to use in <
strong
>MSDN</
strong
>, <
strong
>CodePlex</
strong
>, <
strong
>TechNet</
strong
>, <
strong
>MCMS</
strong
> and even as an alternative to the default editor in
<
a
href
=
"http://www.telerik.com/products/aspnet-ajax/sharepoint.aspx"
>SharePoint</
a
>.
</
p
>
</
div
>
</
Content
>
</
telerik:RadEditor
>
</
div
>
</
telerik:LayoutColumn
>
</
Columns
>
</
telerik:LayoutRow
>
<telerik:RadGrid ID="grdComponent" runat="server"> |
<MasterTableView GroupLoadMode="Server"> |
<NestedViewTemplate> |
<uc:ReviewerGrid ID="ReviewerGrid" runat="server" ReviewId='<%# Eval("ReviewId") %>' /> |
</NestedViewTemplate> |
<DetailTables> |
</DetailTables> |
</MasterTableView> |
</telerik:RadGrid> |
With grdReviewer |
.ClientSettings.EnablePostBackOnRowClick = False |
.AllowSorting = False |
.ClientSettings.Selecting.AllowRowSelect = False |
End With |
<
asp:ScriptManager
ID
=
"Scriptmanager1"
runat
=
"server"
/>
<
asp:TextBox
ID
=
"Textbox1"
runat
=
"server"
/>
<
telerik:RadButton
ID
=
"RadButton1"
runat
=
"server"
Text
=
"Submit"
/>
<
asp:RequiredFieldValidator
runat
=
"server"
ID
=
"RequiredFieldValidator1"
ErrorMessage
=
"Enter a value in the input"
ControlToValidate
=
"Textbox1"
/>
WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).
var def =
new
ScriptResourceDefinition()
{
ResourceName =
"Telerik.Web.UI.Common.jQuery.js"
,
ResourceAssembly = System.Reflection.Assembly.GetAssembly(
typeof
(Telerik.Web.UI.RadWebControl))
};
ScriptManager.ScriptResourceMapping.AddDefinition(
"jquery"
, def);
<
telerik:RadGrid
ID
=
"Grid_PurchaseOrder_Lines"
runat
=
"server"
AutoGenerateColumns
=
"False"
AllowSorting
=
"True"
CellSpacing
=
"0"
GridLines
=
"None"
oneditcommand
=
"Grid_PurchaseOrder_Lines_EditCommand"
>
<
ClientSettings
>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
ScrollHeight
=
"375px"
/>
</
ClientSettings
>
<
MasterTableView
AutoGenerateColumns
=
"false"
DataKeyNames
=
"CompanyId, LineDesc,ID"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
/>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
Visible
=
"True"
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
Visible
=
"True"
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
UniqueName
=
"Edit"
HeaderStyle-HorizontalAlign
=
"Center"
HeaderStyle-VerticalAlign
=
"Middle"
>
<
ItemTemplate
>
<
asp:Button
ID
=
"edit"
runat
=
"server"
CommandName
=
"Edit"
/>
<
asp:Button
ID
=
"Cancel"
runat
=
"server"
CommandName
=
"Cancel"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Company"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# Eval("CompanyName")%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
""
HeaderText
=
"Vendor Description"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"false"
>
<
HeaderStyle
Width
=
"70px"
/>
<
ItemTemplate
>
<%#Eval("vendordescription")%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:TextBox
ID
=
"TextBox1"
runat
=
"server"
Text='<%# Eval("vendordescription") %>'></
asp:TextBox
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Component"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
HeaderStyle
Width
=
"80px"
/>
<
ItemTemplate
>
<%# Eval("LineDesc")%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Size"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# Eval("LineSize")%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Material/ Caliper"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# Eval("LineMatl")%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Deco"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
HeaderStyle
Width
=
"70px"
/>
<
ItemTemplate
>
<%# Eval("LineDeco")%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Coating/ Finish"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# Eval("LineFinish")%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Quantity"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# String.Format("{0:n0}", Eval("LineQty"))%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Unit Price"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# String.Format("{0:C3}",Eval("UnitPrice"))%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
HeaderText
=
"Line Total"
UniqueName
=
"TemplateColumn1"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# String.Format("{0:C3}",Eval("LineTotal"))%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn1 column"
UniqueName
=
"TemplateColumn1"
HeaderText
=
"Sale Quantity"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# String.Format("{0:n0}", Eval("SaleQty"))%>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn6 column"
UniqueName
=
"TemplateColumn6"
HeaderText
=
"Sale Price"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# String.Format("{0:C}",Eval("SellPrice")) %>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter TemplateColumn6 column"
UniqueName
=
"TemplateColumn6"
HeaderText
=
"Sale Total"
ReadOnly
=
"true"
>
<
ItemTemplate
>
<%# String.Format("{0:C}", Eval("SaleTotal")) %>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
>
</
FilterMenu
>
</
telerik:RadGrid
>