webForumDet fria alternativet

Koppla javascript till en asp:linkbutton

29 svar · 884 visningar · startad av wwwstekaren

wwwstekarenMedlem sedan apr. 2003234 inlägg
#1

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.

GladhMedlem sedan maj 20013 024 inlägg
#2

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

GrynetMedlem sedan maj 2001329 inlägg
#3

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.

GrynetMedlem sedan maj 2001329 inlägg
#4

re: Gladh

TUFFT....

wwwstekarenMedlem sedan apr. 2003234 inlägg
#5

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

GrynetMedlem sedan maj 2001329 inlägg
#6

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.

wwwstekarenMedlem sedan apr. 2003234 inlägg
#7

japp dellink finns, jag har en asp:LinkButton som ligger i en datagrid

wwwstekarenMedlem sedan apr. 2003234 inlägg
#8

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?

wwwstekarenMedlem sedan apr. 2003234 inlägg
#9

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

DinoMedlem sedan sep. 20011 918 inlägg
#10
lbtGrr.Attributes("onclick") = "javascript:if(!confirm(""Är du säker?"")){return false;}";
wwwstekarenMedlem sedan apr. 2003234 inlägg
#11

lbtGrr är namnet på min linkbutton?

DinoMedlem sedan sep. 20011 918 inlägg
#12

Jo. Du får byta.

wwwstekarenMedlem sedan apr. 2003234 inlägg
#13

det har jag gjort

Koden nedan funkar inte för c#

lbtGrr.Attributes("onclick") = "java script:if(!confirm(""Är du säker?"")){return false;}";
wwwstekarenMedlem sedan apr. 2003234 inlägg
#14

koden som du skrev ska ligga i aspx.cs filen i page_load funktionen:)

wwwstekarenMedlem sedan apr. 2003234 inlägg
#15

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>
GladhMedlem sedan maj 20013 024 inlägg
#16

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.

- ;

wwwstekarenMedlem sedan apr. 2003234 inlägg
#17

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";
		}
GladhMedlem sedan maj 20013 024 inlägg
#18

Det kan du inte med LinkButton, då får du använda ImageButton istället.

- M

wwwstekarenMedlem sedan apr. 2003234 inlägg
#19

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

wwwstekarenMedlem sedan apr. 2003234 inlägg
#20

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

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb