Aspx C#:如何在grid_HtmlRowCreated中获得Eval(...)的结果?

时间:2013-05-15 18:58:47

标签: c# asp.net eval

我正在尝试在grid_HtmlRowCreated方法中的C#代码中使用.aspx中的参数。 我通过在.aspx中的标签中设置文本然后从标签中获取该文本来尝试它。

有效: ASPX

<dx:ASPxLabel runat="server"  ID="cl" Text="Some text"/>

...

protected void grid_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
    {
        if (e.RowType == DevExpress.Web.ASPxGridView.GridViewRowType.Data)
        {
                   ...
            string id;

            if (comments_grid != null && expIDControl != null)
            {
                id = ((DevExpress.Web.ASPxEditors.ASPxLabel)expIDControl).Text;      
                System.Windows.Forms.MessageBox.Show( id );
            }
    }

但是当我设置的值如下:

<dx:ASPxLabel runat="server"  ID="cl" Text='<%# Eval("Id") %>'/>

然后id为空,当我设置

<dx:ASPxLabel runat="server"  ID="cl" Text='<%# Eval("Id") %> + " test"'/>

然后id是字面上&lt;%#Eval(“Id”)%&gt;测试

感谢您的任何想法...

编辑:这也有效,代码只需要在HtmlRowPrepared中,而不是在HtmlRowCreated中。谢谢你们!

2 个答案:

答案 0 :(得分:0)

您可以在将要连接的类(.aspx.cs)上编写一个方法。

从记忆中走出来:

Text='<%# ConcatSomething (Eval("Id")  ,  "Peanut" ) %> '/>

然后

    public object ConcatSomething(object x , object y)
    {
        return Convert.ToString(x) + Convert.ToString(y);
    }

或者

    public object ConcatSomething(string x , string y)
    {
        return x + y;
    }

你必须玩它。我已经在data_binding上完成了一千次。

臭虫是“对象”的东西。 如果你有一些代码,你必须为空值编码(进入)。

答案 1 :(得分:0)

我刚刚从我当前的项目中复制了这个,我有相同的Grid with Item模板,正确的方法是:

<dx:ASPxLabel runat="server"  ID="cl" Text='<%# DataBinder.Eval(Container.DataItem, "Id") %>' />

问候