Hi,
I am using radgrid version 2015 q2 template column and edit template column I want to implement duplicate record validation in insert and edit mode but I am not able to find controls in insert and edit mode of radgrid below is my code.
If there is another easy method to validate dublicate record in radgrid plz share with me thanks.
<
telerik:RadGrid
ID
=
"grdLanguage"
runat
=
"server"
AllowSorting
=
"True"
AllowPaging
=
"True"
AllowCustomPaging
=
"True"
PagerStyle-Mode
=
"NextPrev"
Skin
=
"Bootstrap"
ShowGroupPanel
=
"false"
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
MasterTableView
AutoGenerateColumns
=
"False"
EditMode
=
"PopUp"
DataKeyNames
=
"Language_ID"
CommandItemDisplay
=
"Top"
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn1 column"
UniqueName
=
"EditCommandColumn1"
>
</
EditColumn
>
<
PopUpSettings
Modal
=
"true"
/>
</
EditFormSettings
>
<
CommandItemTemplate
>
<
asp:LinkButton
ID
=
"LinkButton2"
runat
=
"server"
CommandName
=
"InitInsert"
Visible='<%# !grdLanguage.MasterTableView.IsItemInserted %>'><
img
style
=
"border:0px;vertical-align:middle;"
alt
=
""
src
=
"Images/AddRecord.png"
/>Add new</
asp:LinkButton
>
</
CommandItemTemplate
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridTemplateColumn
HeaderText
=
"Language Name"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblCertName"
runat
=
"server"
Text='<%# Bind("Language_Type.Language_Type_Name") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Reading"
>
<
ItemTemplate
>
<
telerik:RadRating
ID
=
"ratReading"
runat
=
"server"
DbValue='<%# Bind("Read_Skill") %>' ItemCount="5" ReadOnly="true"></
telerik:RadRating
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Writing"
>
<
ItemTemplate
>
<
telerik:RadRating
ID
=
"ratWriting"
runat
=
"server"
DbValue='<%# Bind("Writing_Skill") %>' ItemCount="5" ReadOnly="true"></
telerik:RadRating
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Speaking"
>
<
ItemTemplate
>
<
telerik:RadRating
ID
=
"ratSpeaking"
runat
=
"server"
DbValue='<%# Bind("Speaking_Skill") %>' ItemCount="5" ReadOnly="true"></
telerik:RadRating
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridEditCommandColumn
HeaderText
=
"Edit"
ButtonType
=
"ImageButton"
></
telerik:GridEditCommandColumn
>
</
Columns
>
<
EditFormSettings
EditFormType
=
"Template"
PopUpSettings-Height
=
"350px"
PopUpSettings-Width
=
"600px"
>
<
FormTemplate
>
<
div
class
=
"form-horizontal panel panel-primary"
>
<
div
class
=
"panel-heading"
>Previous Experience</
div
>
<
div
class
=
"panel-body"
>
<
div
>
<
asp:CustomValidator
ID
=
"CustValLanguage"
OnServerValidate
=
"CustValLanguage_ServerValidate1"
ValidationGroup
=
"valLanguage"
runat
=
"server"
Display
=
"Dynamic"
> </
asp:CustomValidator
>
</
div
>
<
div
class
=
"form-group required"
>
<
asp:Label
ID
=
"Label1"
CssClass
=
"col-sm-2 control-label"
runat
=
"server"
Text
=
"Degree"
></
asp:Label
>
<
div
class
=
"col-sm-10"
>
<
telerik:RadComboBox
ID
=
"ddlLanguage_Type_ID"
SelectedValue='<%# Bind("Language_Type_ID") %>' runat="server" Skin="Bootstrap">
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"[Select Item]"
Value
=
"0"
runat
=
"server"
/>
<
telerik:RadComboBoxItem
Text
=
"Arabic"
Value
=
"1"
runat
=
"server"
/>
<
telerik:RadComboBoxItem
Text
=
"English"
Value
=
"2"
runat
=
"server"
/>
<
telerik:RadComboBoxItem
Text
=
"Farsi"
Value
=
"5"
runat
=
"server"
/>
<
telerik:RadComboBoxItem
Text
=
"French"
Value
=
"3"
runat
=
"server"
/>
<
telerik:RadComboBoxItem
Text
=
"German"
Value
=
"4"
runat
=
"server"
/>
</
Items
>
</
telerik:RadComboBox
>
<
br
/>
<
span
>
<
asp:RequiredFieldValidator
ControlToValidate
=
"ddlLanguage_Type_ID"
InitialValue
=
"[Select Item]"
Display
=
"Dynamic"
SetFocusOnError
=
"true"
CssClass
=
"text-danger"
runat
=
"server"
ID
=
"RequiredFieldValidator5"
ErrorMessage
=
"Language is Required!"
ValidationGroup
=
"valLanguage"
></
asp:RequiredFieldValidator
></
span
>
</
div
>
</
div
>
<
div
class
=
"form-group "
>
<
asp:Label
ID
=
"lblCertName"
CssClass
=
"col-sm-2 control-label"
runat
=
"server"
Text
=
"Reading"
></
asp:Label
>
<
div
class
=
"col-sm-10"
>
<
telerik:RadRating
ID
=
"ratReading"
runat
=
"server"
Precision
=
"Item"
DbValue='<%# Bind("Read_Skill") %>' ItemCount="5"></
telerik:RadRating
>
<
span
></
span
>
</
div
>
</
div
>
<
div
class
=
"form-group "
>
<
asp:Label
ID
=
"lblCertAuthority"
CssClass
=
"col-sm-2 control-label"
runat
=
"server"
Text
=
"Writing"
></
asp:Label
>
<
div
class
=
"col-sm-10"
>
<
telerik:RadRating
ID
=
"ratWriting"
runat
=
"server"
Precision
=
"Item"
DbValue='<%# Bind("Writing_Skill") %>' ItemCount="5"></
telerik:RadRating
>
<
span
></
span
>
</
div
>
</
div
>
<
div
class
=
"form-group "
>
<
asp:Label
ID
=
"Label2"
CssClass
=
"col-sm-2 control-label"
runat
=
"server"
Text
=
"Speacking"
></
asp:Label
>
<
div
class
=
"col-sm-10"
>
<
telerik:RadRating
ID
=
"ratSpeaking"
Precision
=
"Item"
runat
=
"server"
DbValue='<%# Bind("Speaking_Skill") %>' ItemCount="5"></
telerik:RadRating
>
<
span
></
span
>
</
div
>
</
div
>
<
asp:Button
ID
=
"btnUpdate"
Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
runat="server" ValidationGroup="valLanguage" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'></
asp:Button
>
<
asp:Button
ID
=
"btnCancel"
formnovalidate
name
=
"cancel"
class
=
"cancel"
Text
=
"Cancel"
runat
=
"server"
CausesValidation
=
"False"
CommandName
=
"Cancel"
></
asp:Button
>
</
div
>
</
div
>
</
FormTemplate
>
</
EditFormSettings
>
</
MasterTableView
>
<
ClientSettings
>
<
ClientEvents
OnPopUpShowing
=
"PopUpShowing"
/>
</
ClientSettings
>
<
PagerStyle
Mode
=
"NextPrev"
/>
</
telerik:RadGrid
>
ServerSide Code
protected
void
CustValLanguage_ServerValidate1(
object
source, ServerValidateEventArgs args)
{
// Need here to validate code
if
(lstLanguage !=
null
|| lstLanguage.Count > 0)
{
if
(grdLanguage.MasterTableView.IsItemInserted)
{
{
RadComboBox ddlLanguage_Type_ID = (RadComboBox)grdLanguage.MasterTableView.GetInsertItem().FindControl(
"ddlLanguage_Type_ID"
);
for
(
int
i = 0; i < lstLanguage.Count; i++)
{
if
(lstLanguage[i].Language_Type_ID == Convert.ToInt32(ddlLanguage_Type_ID.SelectedValue))
{
args.IsValid =
false
;
CustomValidator CustValLanguage = (CustomValidator)grdLanguage.MasterTableView.GetInsertItem().FindControl(
"CustValLanguage"
);
CustValLanguage.ErrorMessage =
"Already Exists"
;
}
}
}
}
else
{
// I want code here to check update record already exist or not in the current list collection
}
}
}
private
List<Language> lstLanguage
{
get
{
object
obj =
this
.Session[
"lstLanguage"
];
if
((!(obj ==
null
)))
{
return
((List<Language>)(obj));
}
List<Language> lst_Lang =
new
List<Language>();
this
.Session[
"lstLanguage"
] = lst_Lang;
return
lst_Lang;
}
set
{
// Adds value to session variable
this
.Session[
"lstLanguage"
] = value;
}
}
private
void
GrdLanguage_ItemCommand(
object
sender, GridCommandEventArgs e)
{
switch
(e.CommandName)
{
case
"PerformInsert"
:
if
(Page.IsValid)
{
GridEditFormInsertItem insertedItem = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem();
Language obj =
new
Language();
obj.Language_ID = (
int
)
this
.lstLanguage.Count + 1;
obj.Language_Type_ID = Convert.ToInt32(((RadComboBox)insertedItem.FindControl(
"ddlLanguage_Type_ID"
)).SelectedValue);
obj.Language_Type.Language_Type_Name = ((RadComboBox)insertedItem.FindControl(
"ddlLanguage_Type_ID"
)).SelectedItem.Text;
obj.Read_Skill = Convert.ToInt32(((RadRating)insertedItem.FindControl(
"ratReading"
)).Value);
obj.Writing_Skill = Convert.ToInt32(((RadRating)insertedItem.FindControl(
"ratWriting"
)).Value);
obj.Speaking_Skill = Convert.ToInt32(((RadRating)insertedItem.FindControl(
"ratSpeaking"
)).Value);
lstLanguage.Add(obj);
grdLanguage.Rebind();
}
break
;
case
"Update"
:
if
(Page.IsValid)
{
// GridEditFormInsertItem insertedItem = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem();
GridEditableItem editform = e.Item
as
GridEditableItem;
var index = lstLanguage.FindIndex(p => p.Language_ID == (
int
)editform.OwnerTableView.DataKeyValues[editform.ItemIndex][
"Language_ID"
]);
Language obj =
new
Language();
obj.Language_Type_ID = Convert.ToInt32(((RadComboBox)editform.FindControl(
"ddlLanguage_Type_ID"
)).SelectedValue);
obj.Language_Type.Language_Type_Name = ((RadComboBox)editform.FindControl(
"ddlLanguage_Type_ID"
)).SelectedItem.Text;
obj.Read_Skill = Convert.ToInt32(((RadRating)editform.FindControl(
"ratReading"
)).Value);
obj.Writing_Skill = Convert.ToInt32(((RadRating)editform.FindControl(
"ratWriting"
)).Value);
obj.Speaking_Skill = Convert.ToInt32(((RadRating)editform.FindControl(
"ratSpeaking"
)).Value);
lstLanguage[index] = obj;
grdLanguage.Rebind();
}
break
;
default
:
break
;
}
}
private
void
GrdLanguage_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
grdLanguage.DataSource = lstLanguage;
}
Hello.
I have gird and I add "Export to excel" to it.it Works fine.
but I want Add Summation of some Columns of it after the last row in Excel file which is not in Grid.
And second Question , Users can filter my grid and it Works fine But I want when he/she Click on "Export to Excel" button, it Exports All of Data to excel Not just Filtered. Is it Possible?
Hi,
I have nested checkboxes when I select a checkbox it should select all the checkboxes below as well and same when I deselect top most checkbox. However this isn't happening. I have the following code.
aspx:
<
telerik:RadGrid
ID
=
"rgExpiringServices"
OnNeedDataSource
=
"rgExpiringServices_NeedDataSource"
OnItemCommand
=
"rgExpiringServices_ItemCommand"
AllowFilteringByColumn
=
"true"
OnPreRender
=
"rgExpiringServices_PreRender"
runat
=
"server"
Skin
=
"Black"
AllowMultiRowSelection
=
"true"
>
<
ClientSettings
Selecting-AllowRowSelect
=
"true"
Selecting-UseClientSelectColumnOnly
=
"true"
ClientEvents-OnRowSelected
=
"nestedGridRowSelected"
ClientEvents-OnRowDeselected
=
"nestedGridRowDeselected"
></
ClientSettings
>
<
MasterTableView
DataKeyNames
=
"ObjectId, Name"
AutoGenerateColumns
=
"false"
ShowFooter
=
"true"
HierarchyLoadMode
=
"ServerOnDemand"
EnableHierarchyExpandAll
=
"true"
AllowFilteringByColumn
=
"true"
>
<
Columns
>
<
telerik:GridClientSelectColumn
UniqueName
=
"BulkActionSelect"
HeaderText="<%$ Resources:NrttLanguage, BulkAction %>" ></
telerik:GridClientSelectColumn
>
<
telerik:GridButtonColumn
ButtonType
=
"ImageButton"
ButtonCssClass
=
"btnTiny btnApprove"
UniqueName
=
"Renew"
CommandName
=
"Renew"
ImageUrl
=
"~/Images/blank16.png"
HeaderStyle-Width
=
"16px"
ItemStyle-Width
=
"16px"
></
telerik:GridButtonColumn
>
<
telerik:GridButtonColumn
ButtonType
=
"ImageButton"
ButtonCssClass
=
"btnTiny btnDelete"
UniqueName
=
"Terminate"
CommandName
=
"Terminate"
ImageUrl
=
"~/Images/blank16.png"
HeaderStyle-Width
=
"16px"
ItemStyle-Width
=
"16px"
></
telerik:GridButtonColumn
>
<
telerik:GridNumericColumn
UniqueName
=
"Name"
DataField
=
"Name"
HeaderText="<%$ Resources:NrttLanguage, CustomerReference %>" DataType="System.String"> </
telerik:GridNumericColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"DateExpiration"
DataType
=
"System.DateTime"
FilterControlAltText
=
"Filter DateImportant column"
HeaderText="<%$ Resources:NrttLanguage, DateExpiring%>" SortExpression="DateImportant" UniqueName="DateImportant" DataFormatString="{0:d}" >
</
telerik:GridDateTimeColumn
>
<
telerik:GridNumericColumn
UniqueName
=
"Daysuntilexpired"
DataField
=
"DaysUntilExpiration"
HeaderText="<%$ Resources:NrttLanguage, daysuntilexpired %>" > </
telerik:GridNumericColumn
>
<
telerik:GridBoundColumn
UniqueName
=
"Services"
DataField
=
"ServiceInReferenceString"
HeaderText="<%$ Resources:NrttLanguage, Services %>" ></
telerik:GridBoundColumn
>
<
telerik:GridNumericColumn
UniqueName
=
"Parcelcount"
DataField
=
"RealInReference"
HeaderText="<%$ Resources:NrttLanguage, ParcelCount %>" > </
telerik:GridNumericColumn
>
</
Columns
>
<
NestedViewTemplate
>
<
nrtt:CustomerGrid
ID
=
"ucExpiringRealServices"
runat
=
"server"
AllowSelection
=
"true"
OnNeedDataSource
=
"ucExpiringRealServices_NeedDataSource"
OnNeedColumnCollection
=
"ucExpiringRealServices_NeedColumnCollection"
OnItemDataBound
=
"ucExpiringRealServices_ItemDataBound"
></
nrtt:CustomerGrid
>
</
NestedViewTemplate
>
</
MasterTableView
>
</
telerik:RadGrid
>
JavaScript:
function nestedGridRowSelected(sender, args) {
var item = args.get_gridDataItem();
var nv = item.get_nestedViews();
if (nv !== undefined && nv !== null) {
nv.selectAllItems();
} else {
//is child
var mt = sender.get_masterTableView();
var dtv = args.get_tableView();
mt.selectItem(dtv.get_parentRow());
}
}
function nestedGridRowDeselected(sender, args) {
var item = args.get_gridDataItem();
var nv = item.get_nestedViews()[0];
if (nv !== undefined && nv !== null) {
nv.clearSelectedItems();
} else {
//is child
var mt = sender.get_masterTableView();
var dtv = args.get_tableView();
mt.selectItem(dtv.get_parentRow());
}
}
When I debug it tells me that item.get_nestedViews() is undefined. Any help appreciated.
Thanks!
Hi,
When i paste text from MS word (Times New roman, 12 pt) in to the editor, the editor is changing the font name to 'Segoe UI' for some part of the text automatically. This issue is with only some of the word documents i have. I am not able to attach the same word document with this thread as there is no option to attach word format but i have tested it on http://demos.telerik.com/aspnet-ajax/editor/examples/overview/defaultcs.aspx link and the same issue exists.