Hi,
I want to add ios7 Style Toggle Switch in RadGrid Item Template. So i have used this jquery control http://abpetkov.github.io/switchery/
I am able to apply the control over checkbox but the problem is that it kills the autopostback of the checkbox under itemtemplate. What i found that after render html it adds a span over the input control so the checkbox event is never fired. Please tell me the workaround for this
My Page markup
<%@ Page Title="" Language="C#" MasterPageFile="~/Admin.Master" AutoEventWireup="true" CodeBehind="CountryMaster.aspx.cs" Inherits="Test.CountryMaster" %><
br
><
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"head"
runat
=
"server"
><
br
> <
link
href
=
"content/css/switchery.css"
rel
=
"stylesheet"
/><
br
> <
script
src
=
"content/js/switchery.js"
></
script
><
br
> <
script
type
=
"text/javascript"
><
br
> function pageLoad() {<
br
> var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));<
br
> elems.forEach(function (html) {<
br
> var switchery = new Switchery(html);<
br
> });<
br
> };<
br
> </
script
><
br
></
asp:Content
><
br
><
asp:Content
ID
=
"Content2"
ContentPlaceHolderID
=
"ContentPlaceHolder1"
runat
=
"server"
><
br
> <
div
><
h4
class
=
"heading-inline"
>Country Manager</
h4
></
div
><
br
> <
div
class
=
"row-spacer"
></
div
><
br
> <
div
class
=
"row"
><
br
> <
telerik:RadGrid
ID
=
"grv_countries"
runat
=
"server"
AllowFilteringByColumn
=
"True"
AllowPaging
=
"True"
AllowSorting
=
"True"
AutoGenerateColumns
=
"False"
GroupPanelPosition
=
"Top"
OnNeedDataSource
=
"grv_countries_NeedDataSource"
OnItemCreated
=
"grv_countries_ItemCreated"
><
br
> <
MasterTableView
NoMasterRecordsText
=
"No Country Found"
CommandItemDisplay
=
"Top"
InsertItemPageIndexAction
=
"ShowItemOnCurrentPage"
DataKeyNames
=
"CountryID"
><
br
> <
CommandItemSettings
ShowAddNewRecordButton
=
"False"
/><
br
> <
Columns
><
br
> <
telerik:GridBoundColumn
DataField
=
"CountryID"
FilterControlAltText
=
"Filter SystemLogID column"
HeaderText
=
"Country ID"
UniqueName
=
"CountryID"
FilterControlWidth
=
"50px"
AutoPostBackOnFilter
=
"True"
><
br
> </
telerik:GridBoundColumn
><
br
> <
telerik:GridImageColumn
FilterControlAltText
=
"Filter CountryFlagPicture column"
ImageHeight
=
"20px"
ImageWidth
=
"30px"
UniqueName
=
"CountryFlagPicture"
HeaderText
=
"Flag"
AllowFiltering
=
"false"
DataImageUrlFields
=
"CountryFlagPicture"
><
br
> </
telerik:GridImageColumn
><
br
> <
telerik:GridBoundColumn
DataField
=
"CountryName"
FilterControlAltText
=
"Filter CountryName column"
HeaderText
=
"Name"
UniqueName
=
"CountryName"
AutoPostBackOnFilter
=
"True"
><
br
> <
ItemStyle
Wrap
=
"false"
></
ItemStyle
><
br
> </
telerik:GridBoundColumn
><
br
> <
telerik:GridTemplateColumn
AutoPostBackOnFilter
=
"True"
DataField
=
"AllowedSending"
FilterControlAltText
=
"Filter AllowedSending column"
FilterControlWidth
=
"50px"
HeaderText
=
"Allowed Sending"
UniqueName
=
"AllowedSending"
><
br
> <
ItemTemplate
><
br
> <
asp:CheckBox
ID
=
"chk_sending"
runat
=
"server"
Checked='<%# Eval("AllowedSending") %>' AutoPostBack="True" OnCheckedChanged="chk_sending_CheckedChanged" /><
br
> </
ItemTemplate
><
br
> </
telerik:GridTemplateColumn
><
br
> <
telerik:GridTemplateColumn
AutoPostBackOnFilter
=
"True"
DataField
=
"AllowedReceving"
FilterControlAltText
=
"Filter AllowedReceving column"
FilterControlWidth
=
"50px"
HeaderText
=
"Allowed Receving"
UniqueName
=
"AllowedReceving"
><
br
> <
ItemTemplate
><
br
> <
asp:CheckBox
ID
=
"chk_receving"
runat
=
"server"
Checked='<%# Eval("AllowedReceving") %>' AutoPostBack="True" OnCheckedChanged="chk_receive_CheckedChanged" /><
br
> </
ItemTemplate
><
br
> </
telerik:GridTemplateColumn
><
br
> <
telerik:GridBoundColumn
FilterControlAltText
=
"Filter CurrencyCode column"
UniqueName
=
"CurrencyCode"
HeaderText
=
"Currency"
DataField
=
"CurrencyCode"
AutoPostBackOnFilter
=
"True"
><
br
> <
ItemStyle
Wrap
=
"false"
></
ItemStyle
><
br
> </
telerik:GridBoundColumn
><
br
> <
telerik:GridTemplateColumn
AutoPostBackOnFilter
=
"True"
DataField
=
"MinTransferLimit"
FilterControlAltText
=
"Filter MinTransferLimit column"
HeaderText
=
"Min Transfer Limit"
UniqueName
=
"MinTransferLimit"
><
br
> <
ItemTemplate
><
br
> <
telerik:RadNumericTextBox
ID
=
"txt_min_amount"
DbValue='<%# Eval("MinTransferLimit") %>' runat="server" CssClass="form-control" EnableEmbeddedBaseStylesheet="False" EnableEmbeddedSkins="False" EnableTheming="True" MinValue="0" RenderMode="Auto" AutoPostBack="True" OnTextChanged="txt_min_amount_TextChanged"><
br
><
NegativeStyle
Resize
=
"None"
></
NegativeStyle
><
br
><
br
><
NumberFormat
ZeroPattern
=
"n"
DecimalDigits
=
"2"
GroupSeparator
=
","
></
NumberFormat
><
br
><
br
><
EmptyMessageStyle
Resize
=
"None"
></
EmptyMessageStyle
><
br
><
br
><
ReadOnlyStyle
Resize
=
"None"
></
ReadOnlyStyle
><
br
><
br
><
FocusedStyle
Resize
=
"None"
></
FocusedStyle
><
br
><
br
><
DisabledStyle
Resize
=
"None"
></
DisabledStyle
><
br
><
br
><
InvalidStyle
Resize
=
"None"
></
InvalidStyle
><
br
><
br
><
HoveredStyle
Resize
=
"None"
></
HoveredStyle
><
br
><
br
><
EnabledStyle
Resize
=
"None"
></
EnabledStyle
><
br
> </
telerik:RadNumericTextBox
><
br
> </
ItemTemplate
><
br
> </
telerik:GridTemplateColumn
><
br
> <
telerik:GridTemplateColumn
AutoPostBackOnFilter
=
"True"
DataField
=
"MaxTransferLimit"
FilterControlAltText
=
"Filter MaxTransferLimit column"
HeaderText
=
"Max Transfer Limit"
UniqueName
=
"MaxTransferLimit"
><
br
> <
ItemTemplate
><
br
> <
telerik:RadNumericTextBox
ID
=
"txt_max_amount"
DbValue='<%# Eval("MaxTransferLimit") %>' runat="server" CssClass="form-control" EnableEmbeddedBaseStylesheet="False" EnableEmbeddedSkins="False" EnableTheming="True" MinValue="0" RenderMode="Auto" AutoPostBack="True" OnTextChanged="txt_max_amount_TextChanged"><
br
><
NegativeStyle
Resize
=
"None"
></
NegativeStyle
><
br
><
br
><
NumberFormat
ZeroPattern
=
"n"
DecimalDigits
=
"2"
GroupSeparator
=
","
></
NumberFormat
><
br
><
br
><
EmptyMessageStyle
Resize
=
"None"
></
EmptyMessageStyle
><
br
><
br
><
ReadOnlyStyle
Resize
=
"None"
></
ReadOnlyStyle
><
br
><
br
><
FocusedStyle
Resize
=
"None"
></
FocusedStyle
><
br
><
br
><
DisabledStyle
Resize
=
"None"
></
DisabledStyle
><
br
><
br
><
InvalidStyle
Resize
=
"None"
></
InvalidStyle
><
br
><
br
><
HoveredStyle
Resize
=
"None"
></
HoveredStyle
><
br
><
br
><
EnabledStyle
Resize
=
"None"
></
EnabledStyle
><
br
> </
telerik:RadNumericTextBox
><
br
> </
ItemTemplate
><
br
> </
telerik:GridTemplateColumn
><
br
> <
telerik:GridTemplateColumn
AutoPostBackOnFilter
=
"True"
DataField
=
"RecevingPercentage"
FilterControlAltText
=
"Filter RecevingPercentage column"
HeaderText
=
"Receving Percentage"
UniqueName
=
"RecevingPercentage"
><
br
> <
ItemTemplate
><
br
> <
telerik:RadNumericTextBox
ID
=
"txt_receving_percentage"
runat
=
"server"
CssClass
=
"form-control"
DbValue='<%# Eval("RecevingPercentage") %>' EnableEmbeddedBaseStylesheet="False" EnableEmbeddedSkins="False" EnableTheming="True" MinValue="0" MaxValue="100" Type="Percent" RenderMode="Auto" AutoPostBack="True" OnTextChanged="txt_receving_percentage_TextChanged"><
br
><
NegativeStyle
Resize
=
"None"
></
NegativeStyle
><
br
><
br
><
NumberFormat
ZeroPattern
=
"n"
DecimalDigits
=
"2"
GroupSeparator
=
""
></
NumberFormat
><
br
><
br
><
EmptyMessageStyle
Resize
=
"None"
></
EmptyMessageStyle
><
br
><
br
><
ReadOnlyStyle
Resize
=
"None"
></
ReadOnlyStyle
><
br
><
br
><
FocusedStyle
Resize
=
"None"
></
FocusedStyle
><
br
><
br
><
DisabledStyle
Resize
=
"None"
></
DisabledStyle
><
br
><
br
><
InvalidStyle
Resize
=
"None"
></
InvalidStyle
><
br
><
br
><
HoveredStyle
Resize
=
"None"
></
HoveredStyle
><
br
><
br
><
EnabledStyle
Resize
=
"None"
></
EnabledStyle
><
br
> </
telerik:RadNumericTextBox
><
br
> </
ItemTemplate
><
br
> </
telerik:GridTemplateColumn
><
br
> </
Columns
><
br
> </
MasterTableView
><
br
> <
ClientSettings
AllowExpandCollapse
=
"True"
><
br
> <
Selecting
AllowRowSelect
=
"True"
/><
br
> <
Scrolling
AllowScroll
=
"True"
ScrollHeight
=
""
/><
br
> </
ClientSettings
><
br
> </
telerik:RadGrid
><
br
> </
div
><
br
> <
telerik:RadNotification
ID
=
"notify"
runat
=
"server"
Animation
=
"Fade"
EnableRoundedCorners
=
"True"
EnableShadow
=
"True"
Position
=
"Center"
VisibleTitlebar
=
"False"
></
telerik:RadNotification
><
br
></
asp:Content
>
Rendered HTML
For checkbox with jquery toggle applied
<
td
><
br
> <
input
id
=
"ctl00_ContentPlaceHolder1_grv_countries_ctl00_ctl04_chk_sending"
type
=
"checkbox"
name
=
"ctl00$ContentPlaceHolder1$grv_countries$ctl00$ctl04$chk_sending"
onclick
=
"javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$grv_countries$ctl00$ctl04$chk_sending\',\'\')', 0)"
class
=
"js-switch"
data-switchery
=
"true"
style
=
"display: none;"
><
span
class
=
"switchery switchery-default"
style
=
"box-shadow: rgb(100, 189, 99) 0px 0px 0px 16px inset; border-color: rgb(100, 189, 99); transition: border 0.4s, box-shadow 0.4s, background-color 1.2s; -webkit-transition: border 0.4s, box-shadow 0.4s, background-color 1.2s; background-color: rgb(100, 189, 99);"
><
small
style
=
"left: 20px; transition: background-color 0.4s, left 0.2s; -webkit-transition: background-color 0.4s, left 0.2s; background-color: rgb(255, 255, 255);"
></
small
></
span
><
br
> </
td
>
Normal CheckBox Without Jquery Applied (Autopostback Works Fine)
<
td
><
br
> <
input
id
=
"ctl00_ContentPlaceHolder1_grv_countries_ctl00_ctl04_chk_receving"
type
=
"checkbox"
name
=
"ctl00$ContentPlaceHolder1$grv_countries$ctl00$ctl04$chk_receving"
checked
=
"checked"
onclick
=
"javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$grv_countries$ctl00$ctl04$chk_receving\',\'\')', 0)"
><
br
> </
td
>
Server Side For Appyling Class
protected
void
grv_countries_ItemCreated(
object
sender, GridItemEventArgs e)<br> {<br>
if
(e.Item
is
GridDataItem)<br> {<br> CheckBox chk_sending = (CheckBox)e.Item.FindControl(
"chk_sending"
);<br> chk_sending.InputAttributes[
"class"
] =
"js-switch"
;<br> }<br> }
please help to enable autopostback on the jquery styled button
thanks