Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ImageButton loses CommandArgument

Reply
Thread Tools

ImageButton loses CommandArgument

 
 
Bigloopy
Guest
Posts: n/a
 
      04-04-2008
I have a datagrid which I am adding BoundColumns to it programatically.
Tehre are already 5 columns defined in the aspx as template columns, two link
buttons and two image buttons. The datagrid should dsiplay the two link
buttons, then the dynamically generated bound columns, then the 3 image
buttons. The problem is when I insert the BoundColumns into the grid using
the DataGrid.AddAt function I lose the databinding on the CommandArgument of
the image buttons when capturing the OnCommand event. The explictly
instantiated command however does keep its value.

The sender and CommandEventArgs are almost useless to me at this point, it
is supopsed to contain the ID of the row of data it represents. If I could
get the number iof the row in terms of the datagrid I could work around it by
using the DataKeys collection. DO I need to do something special in the
databinding or viewstate? One way or another I need to figure out which row
I clicked on, either in context of the data grid itself or the ID of the row
of data.
 
Reply With Quote
 
 
 
 
George Ter-Saakov
Guest
Posts: n/a
 
      04-04-2008
I feel your pain

Here is the way I do it

1. Drop somewhere on a page a LinkButton (let say with id = LinkButton1),
wire up Click event to LinkButton1_OnClick
2. Make a Text property empty... We do not want to see that LinkButton. It's
a decoy to generate Click event

3. In every row of your datagrid instead of button have it like this
<input type="button" OnClick="__doPostBack('LinkButton1','<%#Eval("ID") %>')"
>

NOTE: not a server control. Just plain html. you can have a link if you want
to..
like <a
href="javascript:__doPostBack('LinkButton1','<%#Ev al("ID")%>')">Click Me
</a>

4. in LinkButton1_OnClick get the row ID by reading __EVENTARGUMENT
int iRowId = Int32.Parse(Request.Form["__EVENTARGUMENT"]);


PS: code is simplified to make it clear.
In reality you will need to use LinkButton1.ClientID instead of hardcoded
value 'LinkButton1'

So <a href="javascript:__doPostBack('LinkButton1','<%#Ev al("ID")%>')">Click
Me </a>
will be
<a
href="javascript:__doPostBack('<%=LinkButton1.Clie ntID%>','<%#Eval("ID")%>')">Click
Me </a>


Good luck.
George.



"Bigloopy" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
>I have a datagrid which I am adding BoundColumns to it programatically.
> Tehre are already 5 columns defined in the aspx as template columns, two
> link
> buttons and two image buttons. The datagrid should dsiplay the two link
> buttons, then the dynamically generated bound columns, then the 3 image
> buttons. The problem is when I insert the BoundColumns into the grid
> using
> the DataGrid.AddAt function I lose the databinding on the CommandArgument
> of
> the image buttons when capturing the OnCommand event. The explictly
> instantiated command however does keep its value.
>
> The sender and CommandEventArgs are almost useless to me at this point, it
> is supopsed to contain the ID of the row of data it represents. If I
> could
> get the number iof the row in terms of the datagrid I could work around it
> by
> using the DataKeys collection. DO I need to do something special in the
> databinding or viewstate? One way or another I need to figure out which
> row
> I clicked on, either in context of the data grid itself or the ID of the
> row
> of data.



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
LinkButton CommandArgument bound property loses value on postback =?Utf-8?B?QmVuamFtaW4gSm9sZGVyc21h?= ASP .Net 2 08-21-2004 05:57 PM
ImageButton CommandArgument Gilles T. ASP .Net 1 03-02-2004 06:24 AM
CommandArgument='<%Select More than one value%>' Mehdi ASP .Net 0 02-15-2004 06:57 PM
How to passing parameters in the CommandArgument Gilles T. ASP .Net 1 02-10-2004 03:33 PM
CommandArgument in TemplateColumn Solomon Shaffer ASP .Net 0 01-16-2004 02:38 PM



Advertisments