DataBinder.Eval в c # - PullRequest
       35

DataBinder.Eval в c #

0 голосов
/ 14 апреля 2010

Привет, кто-нибудь знает, как использовать databinder.eval в c #

На самом деле я пробовал это

LinkButton lnkName = new LinkButton();
lnkName.CommandArgument = DataBinder.Eval("object","<%#COURSE_ID%>");

это показывает ошибку. Что не так с этим?

Ответы [ 4 ]

3 голосов
/ 20 октября 2012

Например, на странице дизайна вы можете использовать как:

<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
}
3 голосов
/ 14 апреля 2010

Вы не можете использовать Eval в коде за страницей aspx.

это:

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

1 голос
/ 09 августа 2010
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowIndex > -1)
    {

        string h = DataBinder.Eval(e.Row.DataItem, "ColumnName").ToString();
    }
}
0 голосов
/ 14 апреля 2010

Вы должны использовать выражение Eval и <% %> в * .aspx коде, а не в коде C #.

...