マークアップなしで、Evalを使用してDataItem値を表示して、AXPxGridViewDataTextColumnのテンプレートをC#で作成するにはどうすればよいですか?
-私が抱えている問題は、文字列 "<%#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>
このドキュメントのリンクは、マークアップでテンプレートを使用する同様の例を示していますが、コードビハインドで実行したいと思います。
テンプレートの作成に関するリンクは次のとおりです。
前もって感謝します、
Soenhay
編集: テンプレートの割り当てをCustomColumnDisplayTextイベントに移動することで、最初の要素を正しく表示することができましたが、ASPxGridViewに表示される他のすべての要素にはEval文字列が表示されます。