1

私はこれをしたいです:

<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が空になり、理由がわかりません...

ありがとうございました

4

1 に答える 1

1

例のようにフォームフィールドの値を評価することはできません。評価しようとするこれらの値が静的である場合、つまり、ユーザーのアクションによって変更されない場合は、ボタンのCommandArgumentプロパティに静的に渡すことができます。

ユーザーのアクションによって値が変化している場合は、次のようなコントロールを参照して、サーバー側で値を取得する必要があります。

string itemId = itemId1.Value;
// OR : 
string itemId2 =  Request.Forms["itemId1"];

LiteralControlの場合、テキストを取得することはできません。あなたはそれを形の要素に変えるべきです。

Evalメソッドは、コントロールの値を動的にサーバーに渡すクライアント側の関数ではありません。

于 2011-01-06T20:45:02.580 に答える