根据GUID列名创建动态ItemTemplate

时间:2017-09-21 20:49:39

标签: c# asp.net aspxgridview

我有一个过程,根据UniqueIdentifier键值来调整数据以创建列。结果数据表具有列名,例如:

> PartNum
> [DB1A6498-7CC6-4EA0-846A-9B6EAB771777] 

ASP的部分是:

            <asp:TemplateField HeaderText="Part No.">
                <ItemTemplate>
                    <asp:Label ID="lblPartNum" runat="server" Text='<%#Eval("PartNum") %>' />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Run Out">
                <ItemTemplate>
                    <asp:Label ID="lblRunOut" runat="server" Text='<%#Eval("DB1A6498-7CC6-4EA0-846A-9B6EAB771777") %>' />
                </ItemTemplate>
            </asp:TemplateField>

零件编号显示正常,但是基于唯一ID结果的字段会显示一条消息:

DB1A6498-7CC6-4EA0-846A-9B6EAB771777/ is neither a DataColumn nor a DataRelation for table .

我通读数据表列来创建网格列,显示正常,但是当动态创建ItemTemplate时,会发生错误。将括号“[]”放在标签中的uniqueID周围也不起作用。

非常感谢任何建议。感谢

1 个答案:

答案 0 :(得分:0)

凯文......你的回答让我走上了方括号的道路。基于此,我找到了有关DataBinder的信息,最终结果是asp:标签的Text属性为:

Text='<%# DataBinder.GetPropertyValue(Container.DataItem,"[DB1A6498-7CC6-4EA0-846A-9B6EAB771777]") %>'

这是显示来自uniqueID字段的数据,没有错误。