大家好,有人知道如何在c#中使用databinder.eval吗
实际上我已经试过了
LinkButton lnkName = new LinkButton();
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");它显示错误。这有什么错呢?
发布于 2010-04-14 20:45:46
您不能在aspx页面的代码隐藏中使用Eval。
这一点:
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");应该是这样:
lnkName.CommandArgument = YOUR_OBJECT_PROPERTY_HERE;要填充YOUR_OBJECT_PROPERTY_HERE,您要么需要像C#代码中的normal那样指定object.property等,要么必须使用反射从对象中获取属性值(这就是eval为您做的事情)。
下面的链接展示了如何使用反射从对象中获取属性信息。如果需要,您可以使用它来复制eval的工作方式:https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6099345.html
链接到DataBinder评估方法:http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx
DataBinder Eval方法是如何工作的(以及作者认为应该避免的原因) http://weblogs.asp.net/jgalloway/archive/2005/09/20/425687.aspx
发布于 2012-10-20 13:13:07
例如,在设计页面中,您可以使用like:
<asp:Button ID="btnEdit" CommandName="Edit"
CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'
CssClass="cursor_hand" runat="server" Text="Edit" />代码隐藏:
int rowIndex = int.Parse(e.CommandArgument.ToString());
if (e.CommandName.Equals("Edit"))
{
//do something
}发布于 2010-08-09 16:38:25
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1)
{
string h = DataBinder.Eval(e.Row.DataItem, "ColumnName").ToString();
}
}https://stackoverflow.com/questions/2637330
复制相似问题