首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#中的DataBinder.Eval

c#中的DataBinder.Eval
EN

Stack Overflow用户
提问于 2010-04-14 20:36:07
回答 4查看 17.7K关注 0票数 1

大家好,有人知道如何在c#中使用databinder.eval吗

实际上我已经试过了

代码语言:javascript
复制
LinkButton lnkName = new LinkButton();
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");

它显示错误。这有什么错呢?

EN

回答 4

Stack Overflow用户

发布于 2010-04-14 20:45:46

您不能在aspx页面的代码隐藏中使用Eval。

这一点:

代码语言:javascript
复制
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");

应该是这样:

代码语言:javascript
复制
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

票数 4
EN

Stack Overflow用户

发布于 2012-10-20 13:13:07

例如,在设计页面中,您可以使用like:

代码语言:javascript
复制
<asp:Button ID="btnEdit" CommandName="Edit" 
    CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'
    CssClass="cursor_hand" runat="server" Text="Edit" />

代码隐藏:

代码语言:javascript
复制
int rowIndex = int.Parse(e.CommandArgument.ToString());

if (e.CommandName.Equals("Edit"))
{
   //do something
}
票数 4
EN

Stack Overflow用户

发布于 2010-08-09 16:38:25

代码语言:javascript
复制
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowIndex > -1)
    {

        string h = DataBinder.Eval(e.Row.DataItem, "ColumnName").ToString();
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2637330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档