La propiedad ASP.Net LinkButton CommandArgument ignora <% = ..%>

Estoy tratando de hacer lo que pensé que era una operación muy simple para establecer una propiedad en un control ASP.Net LinkButton, pero por alguna razón ASP.Net ignora las etiquetas y simplemente pasa el valor como una cadena.

<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument="<%= item.ItemID %>" />

Cuando se hace clic en el enlace, lo manejo con:

   protected void btnDetails_Click(object sender, EventArgs e)
   {
       try
       {
           LinkButton btn = (LinkButton)sender;
           if (btn.CommandName == "ItemID")
           {
               string itemID = btn.CommandArgument.ToString();               
           }
       }
       catch (Exception excp)
       {
           lblError.ForeColor = System.Drawing.Color.Red;
           lblError.Text = excp.Message;
       }
   }

El problema es que itemID termina con un valor de "<% = item.ItemID%>".

He visto a otras personas encontrar el mismo problema e intentar cosas como las siguientes, pero ninguna me ha funcionado hasta ahora.

<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument=<%= item.ItemID %> />

<asp:LinkButton id="viewDetails" runat="server" Text="Details" OnClick="btnDetails_Click" CommandName="ItemID" CommandArgument="<%# item.ItemID %>" />

Respuestas a la pregunta(3)

Su respuesta a la pregunta