如何在c#中为 AXPxGridViewDataTextColumn 创建一个模板而不使用任何标记并使用 Eval 来显示 DataItem 值?
- 我遇到的问题是字符串 "<%#Eval("dataTableField1")%>" 显示在每一行的 GridView 中,而不是适当的值。
这是我尝试的一个例子:
public override void DataBind()
{
...
GridViewDataTextColumn myCol = new GridViewDataTextColumn();
myCol.Caption = "col1";
myCol.FieldName = "dataTableField1";
myCol.DataItemTemplate = new ColumnDataItemTemplate();
theGridView.Columns.Clear();
theGridView.Columns.Add(myCol);
theGridView.DataSource = AdjustDataSource();
theGridView.DataBind();
...
}
public class ColumnDataItemTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
GridViewDataItemTemplateContainer Container = (container as GridViewDataItemTemplateContainer);
LiteralControl lit = new LiteralControl("<div id=\"hr\" style=\"height:100%\"><%#Eval(\"dataTableField1\")%></div>");
Container.Controls.Add(lit);
}
}
这是我想对从此链接获取的行高进行的操作的示例:
<dx:GridViewDataTextColumn FieldName="Description" VisibleIndex="3">
<DataItemTemplate>
<div id="hr" style="height:100%">
<%#Eval("Description")%>
</div>
</DataItemTemplate>
</dx:GridViewDataTextColumn>
此文档链接显示了在标记中使用模板的类似示例,但我想在后面的代码中执行此操作。
这是创建模板的链接。
提前致谢,
索恩海
编辑: 通过将模板分配移动到 CustomColumnDisplayText 事件,我能够正确显示第一个元素,但 ASPxGridView 中显示的所有其他元素都显示 Eval 字符串。