After re-reading your post, I believe I understand what you are trying to do. The CommandArgument is a literal string which you are trying to write the value of a variable into before passing it to the client. In order to do this, you need to use the #Eval keyword, i.e. CommandArgument='<%#Eval("item.Code")%>'. This establishes a one way binding for this value in the string property.
I know this. But it doesnt help. The client will recieve an html, no matter if I will write <%:item.Name %> or <asp:button runat="server" OnClick="Add_Click" CommandArgument="blabla"> . Both case translte to HTML on the browser. So why can't it be a combintaion?
Yep, It seems to me that by 'Client Side' He actually means the Markup. Where Client Side is usually used to refer to DHTML functionality.