我正在尝试在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中。谢谢你们!
答案 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") %>' />
问候