Asp.net CommandArgument为空

Asp.net CommandArgument为空,asp.net,commandargument,Asp.net,Commandargument,我想这样做: <asp:ImageButton runat="server" ID="addToCartIMG" OnCommand="btnAdd_Click" EnableViewState="false" CommandArgument='<%# itemId1.Value + ";" + Name1.Text %>' ImageUrl="<%$Resources:MasterPage, Image_AddToCart%>" /> 其中Item1是

我想这样做:

<asp:ImageButton runat="server" ID="addToCartIMG" OnCommand="btnAdd_Click" EnableViewState="false" CommandArgument='<%# itemId1.Value + ";" + Name1.Text %>' ImageUrl="<%$Resources:MasterPage, Image_AddToCart%>" />

其中Item1是hiddenField,Name1是文本

当我调试方法btnAdd_Click时,CommandEventArgs是空的,我不明白为什么


谢谢

您不能像在示例中那样计算表单字段的值。如果您尝试计算的这些值是静态的,我的意思是用户的操作不会改变这些值,您可以将它们静态地传递给按钮的CommandArgument属性

如果值因用户的操作而更改,则应通过以下控件的引用在服务器端获取它们:

string itemId = itemId1.Value;
// OR : 
string itemId2 =  Request.Forms["itemId1"];
对于LiteralControl,您无法获取它的文本。您应该将其转换为form元素


Eval方法不是将控件的值动态传递给服务器的客户端函数。

您不能像在示例中那样计算表单字段的值。如果您尝试计算的这些值是静态的,我的意思是用户的操作不会改变这些值,您可以将它们静态地传递给按钮的CommandArgument属性

如果值因用户的操作而更改,则应通过以下控件的引用在服务器端获取它们:

string itemId = itemId1.Value;
// OR : 
string itemId2 =  Request.Forms["itemId1"];
对于LiteralControl,您无法获取它的文本。您应该将其转换为form元素

Eval方法不是将控件的值动态传递给服务器的客户端函数