webForumDet fria alternativet

Koppla javascript till en asp:linkbutton

.NET

29 svar · 888 visningar · startad av wwwstekaren · sida 2 av 2

Frågan, av wwwstekaren

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.

Läs frågan i sin helhet →
Medlem sedan apr. 2003234 inlägg
#21

sorry cancel funkar nu det var bara ett simpelt fel i javascriptet:)

Medlem sedan apr. 2003234 inlägg
#22

Nu är det bara att få bort texten "Clicked" och köra en Asp:ImageButton men får det inte att funka med funktionerna någon som kan hjälpa mig:)?

Medlem sedan maj 20012 812 inlägg
#23

Tyvärr så verkar det inte som om click eventet på ImageButton i datagriden slår igenom som det skall.

När jag gjorde en vanlig ImageButton som inte låg i en DataGrid så kunde jag ändra bilen, men när den låg i en DataGrid så ändras bilden inte, fast eventet körs.

Så jag vet inget bra sätt just nu.

- M

Medlem sedan apr. 2003234 inlägg
#24

okey tackar, ska försöka kolla på det, tack för alla din hjälp

Medlem sedan apr. 2003234 inlägg
#25

Jag vill att det ska ta bort en rad ur min datagrid, har denna kod för att ta bort en rad på en annan funktion så jag hade tänkt mig detta

protected void cmdDelete_onClick(object sender, System.EventArgs e)
		{
			((LinkButton)sender).Text = "Clicked";
			
			//Radera post
			/*
			DataSet dataSet = LoadWebs();
			int row = Convert.ToInt32(e.Item.ItemIndex);
			dataSet.Tables[0].Rows[row].Delete();
			dataSet.WriteXml(Server.MapPath("webs.xml"));
			*/
		}

Alltså koden som är komenterad.
Lägger jag till DataGridCommandEventArgs e i stället för System.EventArgs så funkar det men då får jag istället fel på koden

<asp:LinkButton ID="lbDelete" OnPreRender="cmdDelete_onPreRender" OnClick="cmdDelete_onClick" Text="Delete" runat="server">
Medlem sedan mars 20002 836 inlägg
#26

Gladh skrev:

Tyvärr så verkar det inte som om click eventet på ImageButton i datagriden slår igenom som det skall.

När jag gjorde en vanlig ImageButton som inte låg i en DataGrid så kunde jag ändra bilen, men när den låg i en DataGrid så ändras bilden inte, fast eventet körs.

Så jag vet inget bra sätt just nu.

- M

Beror på att default så har man CausesValidation satt till True och har man då textboxar som ska valideras så finns redan eventet onclick (för valideringen). När man sedan försöker att lägga till onclick eventet igen så ser man när sidan har renderats (view source) att taggen har dubbla onclick-event. Hur man kommer förbi det vete fasen. Har försökt flera gånger utan att lyckas :( ... eller, ett sätt är att sätta CausesValidation = False för ImageButton kontrollen ...

cya,
PatrikB

Medlem sedan apr. 2003234 inlägg
#27

Har löst det på ett litet sätt, texten skrivs inte ut så då behålls bilden, men raderar funktionen buggar väldigt mycket, men jag ska försöka att lösa det. Lösningen kommer

Medlem sedan maj 200235 inlägg
#28

javascript, asp:button, datagrid, VB

Har läst denna tråden för att kanske kunna lösa mitt problem men får det inte att fungera....

Jag har en datagrid med ett antal kolumner och i den sista kolumnen hade jag förut en ButtonColumn men eftersom jag vill ha en bekräftelse-ruta om man vill ta bort ett dokument eller inte. Jag har försökt att göra som i exemplet men får det inte att fungera...

Min kod i aspx:

<asp:TemplateColumn HeaderText="Radera" ItemStyle-HorizontalAlign="Center" ItemStyle-Font-Bold="True" ItemStyle-Font-Size="5">
<ItemTemplate>
<asp:Button ID="btnDelete" OnPreRender="btnDelete_onPreRender" OnClick="btnDelete_onClick" Runat="server" Text="x"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>

och i aspx.vb
Protected WithEvents btnDelete As System.Web.UI.WebControls.Button

Sub btnDelete_onPreRender(ByVal sender As System.Object, ByVal e As System.EventArgs)
    btnDelete.Attributes.Add("OnClick", "javascript:return confirm ('Vill du radera dokumentet?');")
End Sub

Sub btnDelete_onClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
    btnDelete.Text = "click"
End Sub

När jag kör detta får jag upp:
System.NullReferenceException: Object reference not set to an instance of an object.

Fattar inte rikigt hur jag ska göra och inte heller det med PreRender... Kan nån hjälpa mig?

Medlem sedan dec. 2003824 inlägg
#29

Har löst det där med confirm på detta sätt men får ett litet fel, oavslutad strängkonstant får jag som fel ... någon som ser vad det kan vara för fel?

Private Sub myNewsDataList_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles myNewsDatalist.ItemDataBound

Try

Dim deleteButton As LinkButton = CType(e.Item.FindControl("delete"), LinkButton)
deleteButton.Attributes("onclick") = "javascript:return " & _
"confirm('Are you sure you want to delete " & _
DataBinder.Eval(e.Item.DataItem, "newsheader") & "?')"
Catch
End Try

Medlem sedan dec. 2003824 inlägg
#30

Har löst så att det fungerar utan att lägg till min newsheader nu.
Tror att man måste ha .Add efter Attributes och sen hade jag glömt ett ; i slutet på javascriptet men det kanske inte är nödvändigt? Gott nytt på er!

288 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
160 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)