webForumDet fria alternativet

Repeater + Imagebutton commandarg

10 svar · 558 visningar · startad av ironhead

ironheadMedlem sedan mars 20011 346 inlägg
#1

Hej!

Jag har denna knapp i en repeater:

<asp:ImageButton id="ImageButton1" runat="server" CausesValidation="false" CommandName="imagebtn1"
 CommandArgument='<%# DataBinder.Eval(Container.DataItem, "FCID") %>' ImageUrl="images/trash.png" ></asp:ImageButton>

Nu skulle jag vilja fånga upp "CommandArgument" när jag klickar på knappen, kan man det i OnClick-eventet på knappen eller måste man köra nån slags "ItemCommand" på Repeatern.

Jag fattar inte...please help me :q

andreas_lindhMedlem sedan jan. 20011 140 inlägg
#2
Private Sub dinrepeater_itemcommand(ByVal sender As Object, ByVal e As RepeaterCommandEventArgs) Handles dinrepeater.ItemCommand
            If e.CommandName = "imagebtn1" Then
                   response.write(e.commandargument)
            End If
        End Sub
ironheadMedlem sedan mars 20011 346 inlägg
#3

Har testat detta, men får det inte att fungera....har skrivit ut "e.commandargument" i en label, men får inte ut nåt värde.
Repeater:

<asp:repeater id="FoodCat" Runat="server" OnItemCommand="FoodCat_itemcommand">
'
'
'
</asp:repeater>

knapp:

<asp:ImageButton id="ImageButton1" Runat="server" ImageUrl="images/trash.png" CausesValidation="false"
CommandName="imagebtn1" CommandArgument="9"></asp:ImageButton>

sub:

    Public Sub FoodCat_itemcommand(ByVal sender As Object, ByVal e As RepeaterCommandEventArgs) Handles FoodCat.ItemCommand
        If e.CommandName = "imagebtn1" Then
            Label1.Text = e.CommandArgument
        End If
    End Sub
andreas_lindhMedlem sedan jan. 20011 140 inlägg
#4

Det där fungerar för mig

prova att göra så här

<asp:repeater id="FoodCat" Runat="server">
'
'
</asp:repeater>

codebehind

protected withevents Foodcat as system.web.ui.webcontrols.repeater

Private Sub foodcat_itemcommand(ByVal sender As Object, ByVal e As RepeaterCommandEventArgs) Handles foodcat.ItemCommand
            If e.CommandName = "imagebtn1" Then
                   label1.text = e.commandargument
            End If
        End Sub
ironheadMedlem sedan mars 20011 346 inlägg
#5

Skumt...fungerar när jag skapar en ny sida, men inte i min befintliga :-/

....en fråga till: jag får felmeddelande när jag försöker lägga till ett onclick event på imageButton.
'javascript' is not a member of 'ASP.Form_Test2_aspx'.
Kan man inte göra det? Jag vill alltså visa rutan innan subben körs...

<asp:ImageButton OnClick="javascript:alert('klickeliklick');" id="ImageButton1" Runat="server"
ImageUrl="images/trash.png" CausesValidation="false" CommandName="imagebtn1" 
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "FCID") %>'></asp:ImageButton>
andreas_lindhMedlem sedan jan. 20011 140 inlägg
#6

prova att lägga till det så här

Private Sub foodcat_itemdatabound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles foodcat.ItemDataBound
  CType(e.Item.FindControl("ImageButton1"), LinkButton).Attributes.Add("onClick", "javascript: return alert('klickeliklick');")
End Sub
ironheadMedlem sedan mars 20011 346 inlägg
#7

Får detta felmeddelande:

Object reference not set to an instance of an object.

andreas_lindhMedlem sedan jan. 20011 140 inlägg
#8

skrev fel

Private Sub foodcat_itemdatabound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles foodcat.ItemDataBound
[B]If e.Item.ItemType = Item Or e.Item.ItemType = AlternatingItem then[/B] 
  CType(e.Item.FindControl("ImageButton1"), imagebutton).Attributes.Add("onClick", "java script: return alert('klickeliklick');")
[B]end if[/B] 
End Sub

edit: ändrade en sak till

ironheadMedlem sedan mars 20011 346 inlägg
#9

"Item" and "AlternatingItem" not declared
Vad ska man skriva för dessa...?

Edit:
Hittade denna kod som funkar, synpunkter på den?
Känns mycket för att åstakomma så lite...

    Protected Overrides Sub OnInit(ByVal e As EventArgs)
        MyBase.OnInit(e)
        AddHandler Load, AddressOf Me.Page_Load
        AddHandler Repeater1.ItemCreated, AddressOf Me.Item_Created
        AddHandler Repeater1.ItemCommand, AddressOf Me.DeleteSearch_Click
    End Sub

    Private Sub Item_Created(ByVal Sender As Object, ByVal e As RepeaterItemEventArgs)
        If ((e.Item.ItemType = ListItemType.Item) _
                    OrElse (e.Item.ItemType = ListItemType.AlternatingItem)) Then
            Dim _myButton As ImageButton = CType(e.Item.FindControl("ImageButton1"), ImageButton)
            _myButton.Attributes.Add("onclick", "return confirm_delete();")
        End If
    End Sub
andreas_lindhMedlem sedan jan. 20011 140 inlägg
#10

jag skrev fel igen

Private Sub foodcat_itemdatabound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles foodcat.ItemDataBound
  If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem then 
    CType(e.Item.FindControl("ImageButton1"), imagebutton).Attributes.Add("onClick", "java script: return alert('klickeliklick');")
  end if 
End Sub

Koden du visar fungerar säkert lika bra.

ironheadMedlem sedan mars 20011 346 inlägg
#11

andreas_lindh skrev:

jag skrev fel igen

Private Sub foodcat_itemdatabound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles foodcat.ItemDataBound
  If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem then 
    CType(e.Item.FindControl("ImageButton1"), imagebutton).Attributes.Add("onClick", "java script: return alert('klickeliklick');")
  end if 
End Sub

Koden du visar fungerar säkert lika bra.

Jag får inte din kod att fungera och problemet med den andra koden är att jag har 2 ImageButtons i min repeater.
Hur jag än gör, så körs samma sub när jag klickar på de olika knapparna :-/ iochmed att det körs en addhandler för repeatern....hur sk amna göra då när man har 2 knappar man vill skicka med id:t till varsin sub?

EDIT:

Jag la till detta i AddHandler-subben:

If e.CommandName = "imagebtn1" Then
'kod knapp1
elseif e.CommandName = "imagebtn2" Then
'kod knapp 2
End If

..så nu funkar det fint!
Tack tack för all hjälp :D

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)