I have a repeater and there is an image button in each row of this.
By clicking on each Image button ,I should get the Id of respective row but I don't Know how to manage the click event of this image button in repeater.
Try this:
ASPX
<asp:LinkButton OnCommand="lbRemove_Command" CommandArgument='<%# Eval("Key")%>' CommandName="Remove" runat="server">
Code Behind
protected void lbRemove_Command(object sender, CommandEventArgs e)
{
switch (e.CommandName)
{
case "Remove":
string ca = e.CommandArgument.ToString();
break;
}
}
You need to use ItemCommand event of repeater. You may also look in to ItemDataBound for custom actions on while binding data source.
Related
I have a Gridview based on a Acces DB in .aspx
I added +1 column to the grid, which is:
<asp:TemplateField HeaderText="view">
<ItemTemplate>
<asp:LinkButton runat="server" Text="Select" CommandName="Select" CausesValidation="False" id="Button1"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
I have a button outside of the grid: Button2
Could I add a command to Button1, to simulate to click on Button2 as well?
EDIT: Found a link here: that talks specifically about wiring multiple events to the same handler, from MSDN:
If you already have an event handler, you can bind several control
events to it. These multiple events can be from the same control or
one event from several different controls, as long as the events all
have the same method signature. For example, you might want to bind
the Click events of several Button server controls on an ASP.NET page
to a single event handler. When your handler is called, you can
determine which control caused the event.
Yes! If you are familiar with wiring up a button then all you have to do is point both of them to the same function and clicking either one will fire the same function.
If you want to do this withing visual studio just double click each button in the designer and this will give you a function on the code behind, within that function just add a call to the function you want to call.
You should create a seperate function that is called from both buttons.
Like this:
protected void Button1_Click(object sender, EventArgs e)
{
buttonCallFunc();
}
protected void Button2_Click(object sender, EventArgs e)
{
buttonCallFunc();
}
protected void buttonCallFunc()
{
//Code goes here
}
I have taken a Gridview and in Gridview I have taken an Image Button.
Now I want to perform click event on that Image Button.
How can I do that??
Tell me something about click events using Gridview.
You need to bind RowCommand event of gridView, You can not bind click event to button as you do with button not in GridView.
GridView html
<asp:GridView id="GridView1" Runat="server" OnRowCommand="GridViewCommandEventHandler" />
Event handler
void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
}
You can directly create click event on that Image Button by double click on Image Button
Or Manually you can add
<asp:ImageButton id="ImageButton1" Runat="server" OnClick="ImageButton1_Click"/>
and in code behind file you can use
void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
// you code here...
}
In an ASP.Net VB.Net code-behind file, can you tell me what event fires that I can use to trap when the user clicks on the "New" button of a DetailsView at the time the DetailsView shows blank items such as DropDownLists, TextBoxes etc?
I need use this event handler to pre-select a value in a DropDownList obtained from a variable.
Try the ItemCommand event. This is how to use it. I only know C# , but I think you get the hang of it.
Code behind:
protected void DetailsView_ItemCommand(object sender, DetailsViewCommandEventArgs e)
{
if (e.CommandName == "New")
{
// Your code here
}
}
Markup:
<asp:DetailsView ID="DetailsView" runat="server" OnItemCommand="DetailsView_ItemCommand" ...
I have a legacy asp.net 3.5 application. I need to bind a filed to CssClass so that i can utilize it via jquery.
Basically, in the datagrid, there are 2 buttons. Button one is visible and button two is not visible. On click of button one, i want to perform action and then make button two visible and hide button one. How can i do this? I just need a kick in the right direction...
<asp:LinkButton ID="lnkDelete" runat="server"
ToolTip="Delete Order <%# DataBinder.Eval(Container.DataItem, "TransID")%>"
OnClientClick="return DeleteOrder();"
OnClick="OrderDelete" CommandArgument='<%# Eval("TransID")'
CssClass="">
<asp:Image ID="Image1" runat="server" ImageUrl="~/images/icons/delete.gif"
BorderStyle="None" />
</asp:LinkButton>
My current binding inside the tooltip results in an error, "the server tag is not well formed".
On the code behind OrderDelete, i can disable the delete link, but how can i make the other button visible?
//delete indivisual order
protected void OrderDelete(object sender, EventArgs e)
{
string transactionID = String.Empty;
LinkButton lnkDelete = (LinkButton)sender;
if (lnkDelete != null)
transactionID = lnkDelete.CommandArgument;
if (!String.IsNullOrEmpty(transactionID))
{
//do delete
}
//refresh results
}
For the server tag not well-formed error, try something like this:
ToolTip='<%# String.Format("Delete Order {0}", DataBinder.Eval(Container.DataItem, "TransID")%>'
For the second part of your question, a little more of your code might help to give you a more specific answer, but in lieu of that, if you know which row of the DataGrid you're in, you should be able to do a FindControl in that row for the second button and make it visible.
Update
You might try setting the tooltip in the codebehind, using the RowDataBound event. Something like this:
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton btn = e.Row.FindContorl("lnkDelete") as LinkButton;
// You'll need to retrieve the values you want to dynamically populate
// the ToolTip with from other controls in the row;
// I don't know if you'd be able to use the DataSource or not, but you might.
btn.ToolTip = "Delete Order ";
}
}
I have multiple user controls on a page and each of them have multiple linkbuttons that perform the same logic on the server side. Is there a way for all the linkbuttons to have the same event handler that is defined in the code behind of the page?
If needed, I can change the linkbuttons to be any other HTML or ASP.NET control as long as it can support a clickable image.
Inside your usercontrol create an event and wire it up. Then call it from the linkbuttons OnClick event handler:
UserControl.ascx:
<asp:LinkButton
runat="server"
id="linkbutton1"
OnClick="LinkButtonClicked">
Click Me
</asp:LinkButton>
<asp:LinkButton
runat="server"
id="linkbutton2"
OnClick="LinkButtonClicked">
Click Me Again
</asp:LinkButton>
UserControl.ascx.cs
public event EventHandler UserControlLinkClick;
protected void LinkButtonClicked(object sender, EventArgs e)
{
if (this.UserControlLinkClick!= null)
{
this.UserControlLinkClick(this, e);
}
}
Inside your parent page wire up the user controls UserControlLinkClick:
protected override void OnInit(EventArgs e)
{
MyUserControl uc = LoadControl("~/PathToUserControl.ascx");
uc.UserControlLinkClick += new EventHandler(MyUserControl_UserControlLinkClick);
}
protected void MyUserControl_UserControlLinkClick(object sender, EventArgs e)
{
//this code will execute when the usercontrol's LinkButtonClicked event is fired.
}
Hope that helps!!
Create an Event/Delegate in your custom control. Then in your page code behind, you can add event handlers or subscribe methods to the delegate.
Link for Events
Link for Delegates
Hope this helps