如何在grid_HtmlRowCreated中获取Eval(..)的结果

本文关键字:Eval 结果 获取 grid HtmlRowCreated | 更新日期: 2023-09-27 18:13:39

我试图在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"'/>

then id = <%# Eval(" id ") %> test

谢谢你的建议…

编辑:那也行,代码只需要在HtmlRowPrepared,而不是在HtmlRowCreated。谢谢你们了!

如何在grid_HtmlRowCreated中获取Eval(..)的结果

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

from memory:

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上做了上千次了。

臭味是"对象"的东西。如果你可能有一些

,你必须为空值(进来)编码。

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

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