webForumDet fria alternativet

Button i Repeater + ID (C#)

6 svar · 367 visningar · startad av Palle

PalleMedlem sedan apr. 20003 174 inlägg
#1

Hej,

Jag har bundit ett dataset till en repeater, i repeatern finns en knapp på varje rad.
När man klickar knappen så ska postens unika id skrivas ut.

aspx:

[red]<asp:repeater id="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
bla bla
<asp:Button CommandName="ID" Text='unikt ID' CommandArgument='<%# DataBinder.Eval(Container.DataItem, "UserID") %>' runat="server" />
</asp:repeater>[/red]

cs:

[red]private void InitializeComponent()
{    
	this.Repeater1.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler(this.Repeater1_ItemCommand);
	this.Load += new System.EventHandler(this.Page_Load);

}

public void Repeater1_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
	Response.Write(e.CommandName.ToString());
}[/red]

Inget felmeddelande, builden går fint med inget värde skrivs ut.. Tips? :)

icaaqMedlem sedan okt. 20005 273 inlägg
#2

ska det inte vara

[red]
public void Repeater1_ItemCommand(object [b]sender[/b], System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
	Response.Write(e.[b]CommandArgument[/b].ToString());
}
[/red]

/red. till sender

PalleMedlem sedan apr. 20003 174 inlägg
#3

Har redan testat, men tyvärr hjälper inte det..
Inte ens detta fungerar:

[red]public void Repeater1_ItemCommand(object sender, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
	Response.Write ("Wee!");
}[/red]

Händelsen till ItemCommand kommer aldrig fram..

DinoMedlem sedan sep. 20011 914 inlägg
#4

Re: Button i Repeater + ID (C#)

aspx:

<asp:repeater id="Repeater1" runat="server">
bla bla
<asp:Button CommandName="ID" Text='unikt ID' CommandArgument='<%# DataBinder.Eval(Container.DataItem, "UserID") %>' runat="server" />
</asp:repeater>

cs:

private void InitializeComponent()
{    
   this.Repeater1.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler(this.Repeater1_ItemCommand);
   this.Load += new System.EventHandler(this.Page_Load);
}

private void Repeater1_ItemCommand(object sender, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
   Response.Write(((Button)sender).CommandArgument);
}
PalleMedlem sedan apr. 20003 174 inlägg
#5

Ingen skillnad, händelsen till ItemCommand kommer aldrig fram..

DinoMedlem sedan sep. 20011 914 inlägg
#6

Har du något textfält med validator, i sådana fall måste du sätta CauseValidation="false" på Buttonen.

Har du !IsPostBack i Page_Load?

PalleMedlem sedan apr. 20003 174 inlägg
#7
  1. Nej
  2. Nej

La in if(!Page.IsPostBack) och då hostade igång, dock fick jag modifiera output lite:

[red]private void Repeater1_ItemCommand(object sender, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
	Response.Write (e.CommandArgument.ToString());
}[/red]

Och nu fungerar det fin fint, tackar för tipset! :bire

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