2011-01-06 45 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是空的。

相关问题