将文本数据绑定标记为带有点的列别名

时间:2015-03-06 08:25:12

标签: asp.net data-binding

我有这个Select语句:

SELECT recordID As [Zap.st.] FROM SomeTable

当我尝试使用asp:Label将结果绑定到带有模板字段的GridView时,我收到此错误:

System.Web.HttpException (0x80004005): DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Zap'

这是一个示例GridView:

<asp:GridView ID="gvMainData" runat="server" AutoGenerateColumns="false">
  <Columns>
    <asp:TemplateField HeaderText="Zap.št." SortExpression="Zap.st." ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left">
      <ItemTemplate>
        <asp:Label ID="lblZapSt" runat="server" Text='<%# Eval("Zap.st.") %>' />
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

我试过了:

Text='<%# Eval("[Zap.st.]") %>'
Text='<%# Eval("'Zap.st.'") %>'

但这些似乎都不起作用。

编辑:进一步澄清我的问题:

我的Select语句是一个关于Sql Server的视图,我的asp.net中的结果是[Zap.st。],没有引用这是[recordID]

2 个答案:

答案 0 :(得分:0)

试试这段代码:

<asp:GridView ID="gvMainData" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Zap.št." SortExpression="Zap.st." ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left">
  <ItemTemplate>
    <asp:Label ID="lblZapSt" runat="server" Text='<%# Eval("recordID") %>' />
  </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

答案 1 :(得分:0)

我在SO上发现了类似的问题,这是解决方案:

<asp:Label ID="lblZapStD" runat="server" Text='<%# DataBinder.GetPropertyValue(Container.DataItem, "Zap.st.") %>' />

这是original question,并且已接受答案。