我正在使用.Net 3.5。我有一个网站,我一直在使用 gridview 控件。基本上,它是一个标准的网格视图,但关闭了 AutoGenerateColumns 以支持通过 ItemTemplate 创建我们自己的列。这是我们的自定义列之一的示例:
<asp:TemplateField HeaderText="Physician" ItemStyle-Width="70px" HeaderStyle-Width="70">
<ItemTemplate>
<asp:Label ID="lblPhysician" runat="server" Text='<%# Bind("LastName") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
在后面的代码中,我根据 SQL 查询填充数据表,并将其设置为 gridview 数据源,并且通常在回发期间根据上面看到的 Bind 函数填充标签。但是,我现在有一个使用别名的 SQL 查询。查询相当大,但这里是一个示例:
SELECT LastName, COUNT(Case WHEN <condition> THEN 1 END) AS ABC
FROM tablename WHERE <condition> Group By LastName
问题是我不能在 ABC 上使用 Bind 命令,因为我将它用于 LastName。除了 LastName,gridview 中没有显示任何内容,即使为别名列返回了数据。如果我将 AutoGenerateColumns 设置为 true,gridview 将与所有正确的数据绑定,但这不是我们需要页面工作的方式。我错过了什么不允许我通过别名手动将列值绑定到控件?
谢谢,如果需要进一步澄清,请告诉我!