sorry cancel funkar nu det var bara ett simpelt fel i javascriptet:)
Koppla javascript till en asp:linkbutton
29 svar · 884 visningar · startad av wwwstekaren · sida 2 av 2
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:)?
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
okey tackar, ska försöka kolla på det, tack för alla din hjälp
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">
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
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
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?
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
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!