Consider the following:
protected void dgTask_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton btn = (LinkButton)e.Row.Cells[4].FindControl("lnkBtnEdit");
btn.Attributes.Add("onclick", "return Test();");
}
}
Instead of a single click, how can I make it double click while clicking on the link button?
Edited
I have tried with the solution presented by *competent_tech* but the problem is that in that case it will intercept the single click.
I need to do some operation on single click and something else on double click. Please help me.
Thanks
Right-click the “Start” button and select “Control Panel“. Select “Appearance and Personalization“. Choose “Specify single- or double-click to open“.
We suggest to follow the steps below: Type Specify single- or double-click to open in the search box, then press Enter. Look for Click item as follows, then select the radio button that says Single-click to open an item (point to select). Click Apply, then OK.
5. Press the divide ÷ or / key then the 5 key to left-click or the minus or - key then the 5 key to right-click. Press the plus or + key then 5 to double-click.
You'd have to do something like this.
Code behind.
Linkbutton btn;
btn.Attributes.Add("onClick", "OnClick();");
then in your javascript you'll need to define the OnClick function like this
var clickCount = 0;
var timeoutID = 0;
function OnClick()
{
clickCount++;
if (clickCount >= 2) {
clickCount = 0; //reset clickCount
clearTimeout(timeoutID); //stop the single click callback from being called
DoubleClickFunction(); //perform your double click action
}
else if (clickCount == 1) {
//create a callback that will be called in a few miliseconds
//the callback time determines how long the user has to click a second time
var callBack = function(){
//make sure this wasn't fired at
//the same time they double clicked
if (clickCount == 1) {
clickCount = 0; //reset the clickCount
SingleClickFunction(); //perform your single click action
}
};
//This will call the callBack function in 500 milliseconds (1/2 second).
//If by that time they haven't clicked the LinkButton again
//We will perform the single click action. You can adjust the
//Time here to control how quickly the user has to double click.
timeoutID = setTimeout(callBack, 500);
}
}
You can either put the javascript directly into your .aspx file or add it dynamically when you add the LinkButton to the page. If you need to perform some action on the server side when the user single clicks or double clicks you can use the __doPostBack method. See here for more info on that.
The problem with my approach is that the user will always have to wait the entire callback time before their single click action is performed. I don't see any way around this as long as you are using single click/double click to distinguish what the user wants. If you find this delay to be too big of a problem you could always try something like click/shift+click to alternate between the actions. It probably wouldn't be as intuitive that way but you would immediately know what the user wants and could respond immediately instead of waiting to see if the user clicks a second time.
Let me know if you have any questions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With