2011-01-06 47 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 2011-01-06 19:42:11

回答

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 2011-01-06 19:48:28

2

您可以評估Databound的Eval控件。如果您撥打Page.DataBind,則可以評估哪些NamingContainer是頁面。 如果你例如DataBind一個Gridview,你可以在GridRows中評估控件。

0

您可以通過處理任何您試圖綁定數據的數據綁定事件並查看您在該上下文中的變量來調試它。通常試圖在調試模式下查看變量會使問題非常明顯。

0

在FAC我想做到這一點:

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

其中項目1是hiddenField和名稱1文字。

當我調試方法btnAdd_Click時,CommandEventArgs是空的。

相關問題