In OnClientKeyPressing
event of RadComboBox
,
I am checking if entered text inside RadComboBox
is greater than 5 characters,
then Enable the asp:Button
and if not then Disable the asp:Button
.
Both RadComboBox
and asp:Button
are inside RadGrid
.
This works perfetcly if I type in 5 or 5+ characters manually,
but not if i PASTE 5 or 5+ characters inside RadComboBox
, if I paste then asp:Button
remains disable.
Reason is: when I paste something in RadComboBox
, OnClientKeyPressing
event raise and since the key(ctrl+v) is pressed only one time, so the Length of text is always 0 and as per condition (If length < 3, Disable button) it remains Disable.
Please note that the length starts from 0 not from 1.
I know the reason but I dont know how to make it detect whole text-length after I paste anything in RadComboBox
Below is the Javascript till now:
<telerik:RadCodeBlock ID="rcb" runat="server">
<script type="text/javascript">
function HandleKeyPress(sender, eventArgs) {
var len = sender.get_text().length;
var comboID = sender.get_id();
var btnSearchID = comboID.replace("ddlAccountCode", "btnSearch");
var btnCtrl = document.getElementById(btnSearchID);
//code to chk Ctrl + V
var e = eventArgs.get_domEvent();
if (e.keyCode == 86 && e.ctrlKey)
{
var len2 = sender.get_text().length; //-------Issue here : pasted text/length is always 0 (as the key is pressed only one time)
alert(len2);
if (len2 > 4) {
//alert("ctrl+v : Enable");
btnCtrl.disabled = false; //Enable
}
else {
//alert("ctrl+v : Disable");
btnCtrl.disabled = true; //Disable
}
}
else if (eventArgs.get_domEvent().keyCode != 8 && len > 4)
{
//alert("Chk manually entered text");
btnCtrl.disabled = false; //Enable
}
else if (eventArgs.get_domEvent().keyCode == 8 && len > 4){
//alert("Backspace Enable");
btnCtrl.disabled = false; //Enable
}
else {
btnCtrl.disabled = true; //Disable
}
}
</script>
</telerik:RadCodeBlock>
HTML:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource">
<MasterTableView>
<Columns>
<telerik:GridTemplateColumn HeaderText="Acc">
<EditItemTemplate>
<telerik:RadComboBox ID="ddlAccountCode" runat="server" Height="200" Width="260"
AllowCustomText="true" OnClientKeyPressing="HandleKeyPress" >
<Items>
<telerik:RadComboBoxItem Text="Gg" />
<telerik:RadComboBoxItem Text="Gg1" />
<telerik:RadComboBoxItem Text="Gg3" />
</Items>
</telerik:RadComboBox>
<asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="btnSearch_Click" OnClientClick="ButtonClicked()" UseSubmitBehavior="true" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>