Jag försöker koppla ett javascript till en linkbutton som ligger i en datagrid. Får inte det att funka. Det ska komma upp ett alertfönster som frågar om man vill ta bort en person jag eller nej.
Koppla javascript till en asp:linkbutton
29 svar · 884 visningar · startad av wwwstekaren
Det finns olika sätt att göra det på, men den som jag tycker är smidigast och helt klart snyggast är att man i preRender lägger till ett onClick attribut för knappen.
Kolla här: http://eforum.idg.se/viewmsg.asp?entriesid=443455
så kanske du förstår vad jag menar.
- M
typ
myLinkButton.Attributes["OnClick"] = "javascriptfunction();";
eller skriv det i design läget, räcker med en htmlkontroll.
På sidan lägg till en javascriptsfunction.
<script language="javascript">
function javascriptfunction(){
if(Alert("Vill du ta bort personen?")){ //finns väl nått annat en alert som returnera true eller false, men det vet nog du :)
HiddenB.click(); //kan vara Click med stort c då java är helt cp vad det gäller små o stora bokstäver.
}
</script>
Lägg sedan till en knapp på sidan, tex
<asp:button id="HiddenB" style="VISIBILITY: hidden" runat="server"></asp:button>
Du kan sen koppla knappen mot en händelse som vanligt och där göra dina funktioner som ska tabort personen i fråga.
Visst ja, du måste nog ha med ett id eller liknande så du vet vilken person du ska tabort. Detta kan du ju fixa genom ett hidden fält som du kan läsa av (samma princip som den gömda knappen, ta bara en textbox och dölj den på samma sätt.) Men du kommer nog på nått bättre sätt själv.
ps. Kopiera inte min kod skriver den mer eller mindre rakt uppochner som vanligt.
håller på att testa exemplet som Gladh lade in jag får fel här
dellink.Attributes.Add("onclick", "return confirm ('Are you sure?');");
felmedelande
Object reference not set to an instance of an object
Fungerade finnt för mig.
Är du säker på att dellink finns?
Tack tipset Gladh var hur snyggt som helst, blir till att gå ignom alla sidor och rensa bort lite onödiga javascripts mm.
japp dellink finns, jag har en asp:LinkButton som ligger i en datagrid
Min kod
aspx filen
<HEAD>
<script language="javascript">
function javascriptfunction()
{
if(Alert("Vill du ta bort personen?")){ //finns väl nått annat en alert som returnera true eller false, men det vet nog du
HiddenB.click(); //kan vara Click med stort c då java är helt cp vad det gäller små o stora bokstäver.
}
</script>
forsättning på aspx filen
asp:TemplateColumn>
<ItemTemplate>
<div class="button">
<asp:LinkButton CommandName="Edit" Text="Edit" runat="server" ID="Linkbutton2">
<img src="edit.gif" align="left" border="0" alt="Edit"></asp:LinkButton></div>
<div class="button">
<asp:LinkButton ID="myLinkButton" Text="Delete" runat="server">
<img src="trashcan.gif" align="left" border="0" alt="Delete"></asp:LinkButton></div>
</ItemTemplate>
<EditItemTemplate>
<div class="button">
<asp:LinkButton CommandName="Cancel" Text="Cancel" runat="server" ID="Linkbutton4">
<img src="cancel.gif" border="0" alt="Cancel" align="left"></asp:LinkButton></div>
<div class="button">
<asp:LinkButton CommandName="Update" Text="Add/Update" runat="server" ID="Linkbutton5">
<img src="add.gif" alt="Add/Update" border="0" align="left">
</asp:LinkButton></div>
</EditItemTemplate>
aspx.cs
protected System.Web.UI.WebControls.LinkButton myLinkButton;
protected void Page_Load(Object src, EventArgs e)
{
if(!IsPostBack)
{
BindGrid(null, "Responsible");
myLinkButton.Attributes["OnClick"] = "javascriptfunction();";
//dellink.Attributes.Add("onClick","return confirm('Are you Sure you want to delete');");
//binddata();
}
}
vad gör jag för fel?
jag har nu gått tillbaka där min kod funkade senast. Testar nu att göra allt från början, men som sakt jag har en linkbutton det går väll lika bra med det? jag har en bild som man ska klicka på och då ska det komma upp en alert som frågar om man vill ta bort personen
lbtGrr.Attributes("onclick") = "javascript:if(!confirm(""Är du säker?"")){return false;}";
lbtGrr är namnet på min linkbutton?
Jo. Du får byta.
det har jag gjort
Koden nedan funkar inte för c#
lbtGrr.Attributes("onclick") = "java script:if(!confirm(""Är du säker?"")){return false;}";
koden som du skrev ska ligga i aspx.cs filen i page_load funktionen:)
Det är på denna knapp som ligger i en datagrid som jag vill ska trigga javascriptet
<asp:LinkButton ID="lbDelete" CommandName="Delete" Text="Delete" runat="server">
<img src="trashcan.gif" align="left" border="0" alt="Delete"></asp:LinkButton></div>
</ItemTemplate>
Följande fungerar bra för mig.
aspx sidan
<asp:DataGrid id=DataGrid1 style="Z-INDEX: 101; LEFT: 80px; POSITION: absolute; TOP: 56px" runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="cmdDelete" OnPreRender="cmdDelete_onPreRender" OnClick="cmdDelete_onClick" Runat=server>click me</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
CodeBehind sidan:
.
.
.
protected void cmdDelete_onPreRender(object sender, System.EventArgs e)
{
((LinkButton)sender).Attributes.Add("onclick", "return confirm ('Are you sure?');");
}
protected void cmdDelete_onClick(object sender, System.EventArgs e)
{
((LinkButton)sender).Text = "Clicked";
}
.
.
.
Du måste använda dig av sender propertyn i onClick och i onPreRender eftersom annars vet du inte vilken LinkButton det är eftersom alla heter samma sak.
- ;
tackar funkar jätte bra, ska bara fixa till den lite nu:)
En sak hur får jag in en bild i stället för texten "Clicked"
protected void cmdDelete_onClick(object sender, System.EventArgs e)
{
((LinkButton)sender).Text = "Clicked";
}
kan du hjälpa mig med koden till det för jag får det inte att fungera, tack för all hjälp hitils
sedan att om man klickar på cancel på alertfönstert ska det inte hända något det gör det inte här men det blir ett java fel