1

こんにちは、c# で databinder.eval を使用する方法を知っている人

実際に私はこれを試しました

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

エラーを表示しています。これの何が問題なのですか?

4

4 に答える 4

4

たとえば、デザインページでは次のように使用できます。

<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
}
于 2012-10-20T05:13:07.040 に答える
4

aspx ページの分離コードで Eval を使用することはできません。

これ:

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

これである必要があります:

lnkName.CommandArgument = YOUR_OBJECT_PROPERTY_HERE;

YOUR_OBJECT_PROPERTY_HERE に入力するには、C# コードで通常のように object.property などを指定するか、リフレクションを使用してオブジェクトからプロパティ値を取得する必要があります (これは eval が行うことです)。

リフレクションを使用してオブジェクトからプロパティ情報を取得する方法を示すリンクを次に示します。必要に応じて、eval の動作を複製するために使用できます

DataBinder Eval メソッドへのリンク: http://msdn.microsoft.com/en-us/library/4hx47hfe.aspx

DataBinder Eval メソッドのしくみ (および作成者が避けるべきだと考える理由) http://weblogs.asp.net/jgalloway/archive/2005/09/20/425687.aspx

于 2010-04-14T12:45:45.597 に答える
2
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowIndex > -1)
    {

        string h = DataBinder.Eval(e.Row.DataItem, "ColumnName").ToString();
    }
}
于 2010-08-09T08:38:25.197 に答える
0

<% %>C# コードではなく *.aspx コードでEval 式を使用する必要があります。

于 2010-04-14T12:41:17.317 に答える