喜有人知道如何在C#中使用的DataBinder.Eval的DataBinder.Eval在C#
其实我已经试过这
LinkButton lnkName = new LinkButton();
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");
它显示错误。这有什么错?
喜有人知道如何在C#中使用的DataBinder.Eval的DataBinder.Eval在C#
其实我已经试过这
LinkButton lnkName = new LinkButton();
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");
它显示错误。这有什么错?
您应该使用* .aspx代码中的Eval表达式和<% %>
而不是C#代码。
那么在C#中使用DataBinder.Eval方法是什么? – jestges 2010-04-14 12:45:32
你不能在aspx页面背后的代码中使用Eval。
这样的:
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");
应该是这样的:
lnkName.CommandArgument = YOUR_OBJECT_PROPERTY_HERE;
为了填补YOUR_OBJECT_PROPERTY_HERE您可能需要指定object.property等像正常的C#代码,或者你必须使用反射从对象获取属性值(这是eval为您做的)。
这是一个链接,显示如何使用反射从对象获取属性信息。你可以用它来复制如何EVAL作品,如果你需要:https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6099345.html
链接DataBinder的eval方法:http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx
的DataBinder的eval方法的工作原理(为什么笔者认为应该避免)http://weblogs.asp.net/jgalloway/archive/2005/09/20/425687.aspx
嗨,谢谢你的回复。这是什么意思YOUR_OBJECT_PROPERTY_HERE?对不起,你能给我一个例子吗? – jestges 2010-04-14 12:47:39
@jestges它会是这样的: [ObjectInstance]。[Property] or CollegeClass.CourseID – kemiller2002 2010-04-14 12:51:53
我已经通过很多例子。在每个示例中,它们都显示静态控件,如
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1)
{
string h = DataBinder.Eval(e.Row.DataItem, "ColumnName").ToString();
}
}
对于中继器它是DataBinder.Eval(e.Item.DataItem,“ColumnName”) – mhenry1384 2013-10-01 01:24:07
对于设计页面示例,您可以使用这样的:
<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-04-14 12:38:01
只是我尝试通过c#代码而不是aspx内联使用DataBinder.Eval方法。所以我尝试了这样。但我没有成功。 DataBinder.Eval(对象容器,字符串表达式)这是签名。这里对象容器是什么意思?任何想法? – jestges 2010-04-14 12:43:08