2010-04-14 7 views
0

Salut tout le monde sait comment utiliser DataBinder.Eval dans C#DataBinder.Eval dans C#

En fait, j'ai essayé ce

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

il affiche l'erreur. Quel est le problème avec ça?

+0

Pouvez-vous poster un peu plus de votre code s'il vous plaît comment l'utilisation complète. –

+0

Juste j'essaye d'employer la méthode de DataBinder.Eval par le code de C# au lieu de l'aspx inline. Alors j'ai essayé comme ça. Mais je n'ai pas réussi. DataBinder.Eval (conteneur d'objet, expression de chaîne) c'est la signature. Qu'est-ce que cela signifie par conteneur d'objet? Une idée? – jestges

Répondre

0

Vous devez utiliser l'expression Eval et <% %> dans le code * .aspx et non avec le code C#.

+0

Alors, à quoi sert la méthode DataBinder.Eval dans C#? – jestges

3

Vous ne pouvez pas utiliser Eval dans le code derrière une page aspx.

ceci:

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

devrait être le suivant:

lnkName.CommandArgument = YOUR_OBJECT_PROPERTY_HERE; 

Pour remplir YOUR_OBJECT_PROPERTY_HERE soit vous devez spécifier l'object.property etc comme normale dans le code C#, ou vous aurez à Utilisez la réflexion pour obtenir la valeur de la propriété de l'objet (ce que fait Eval pour vous).

Voici un lien montrant comment utiliser la réflexion pour obtenir les informations de propriété d'un objet. Vous pouvez l'utiliser pour reproduire la façon dont fonctionne eval si vous avez besoin: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6099345.html

Lien vers DataBinder Eval Méthode: http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx

Comment la méthode Eval DataBinder fonctionne (et pourquoi l'auteur pense qu'il devrait être évité) http://weblogs.asp.net/jgalloway/archive/2005/09/20/425687.aspx

+0

Salut Merci pour votre réponse. Qu'est-ce que cela signifie par YOUR_OBJECT_PROPERTY_HERE? Je suis désolé pouvez-vous me donner un exemple? – jestges

+0

@jestges ce serait quelque chose comme: [ObjectInstance]. [Propriété] ou CollegeClass.CourseID – kemiller2002

+0

J'ai parcouru beaucoup d'exemples. Dans chaque exemple, ils sont affichés avec des contrôles statiques comme Mais je veux créer ce lien mais dynamiquement et je veux mettre le databinder.eval – jestges

1
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowIndex > -1) 
    { 

     string h = DataBinder.Eval(e.Row.DataItem, "ColumnName").ToString(); 
    } 
} 
+1

Pour un répéteur c'est DataBinder.Eval (e.Item.DataItem, "ColumnName") – mhenry1384

3

Par exemple, dans la page de conception que vous pouvez utiliser comme:

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

code Derrière:

int rowIndex = int.Parse(e.CommandArgument.ToString()); 

if (e.CommandName.Equals("Edit")) 
{ 
    //do something 
}