2011-01-06 6 views
0
<asp:Literal ID="Name1" runat="server">Item Name</asp:Literal> 
<asp:LinkButton runat="server" EnableViewState="false" Text='<%#Eval("Name1.Text")%>' /> 

なぜ​​が空を返しますか?<%#Eval( "Name1.Text")%>が空です

ありがとうございました。

+0

ID> = Name1の後に余分な>があることに気づきましたか? – NotMe

答えて

0

コマンドの引数として動的値を渡すことができる時間は、データバインドされたコントロールの中にあるときです。

スタンドアローンのコントロールの場合、コマンドの引数としてこれらの値を渡す必要はなく、単にClickイベントまたはOnCommandイベントの中で直接アクセスする必要はありません。

コントロールがDataBoundコントロールの内部にある場合、コードビハインドでCommand引数を設定できます。

0

コントロールが時間内にレンダリングされるとは思わない。

コードビハインドで行います。

protected void Page_Init(object sender, Eventargs e) 
{  
    lnkButtonID.Text = Name1.Text; 
    lnkButtonID.CommandArgument = Name1.Text; 
} 
+0

'PreInit'を使う方が良いです – abatishchev

+0

実際、私の目的は、ImageButtonのCommandArgumentでLiteralのTextを渡すことです: – Jul

2

データバインドされたコントロールを評価することができます。 Page.DataBindに電話すると、NamingContainerがすべてのコントロールを評価することができます。 たとえば、DataBind Gridviewの場合、GridRowsのコントロールを評価できます。

0

あなたは、データバインドしようとしているもののデータバインディングイベントを処理し、そのコンテキストで後続の変数を見てデバッグできます。多くの場合、デバッグモードで変数を調べると、問題の内容が非常に明白になります。 FACで

0

私はこれを行うにしたいと思います:

アイテム1はのHiddenFieldと名1リテラルれる
<asp:ImageButton runat="server" ID="addToCartIMG" OnCommand="btnAdd_Click" EnableViewState="false" CommandArgument='<%# itemId1.Value + ";" + Name1.Text %>' ImageUrl="<%$Resources:MasterPage, Image_AddToCart%>" /> 

メソッドbtnAdd_Clickをデバッグすると、CommandEventArgsは空です。