日期:2014-05-20  浏览次数:21002 次

[讨论]<%# DataBinder.Eval(Container.DataItem, "字段名">有意思的问题。
本贴为讨论,没多少分,问题我已经用别的方法解决!

<%#   DataBinder.Eval(Container.DataItem,   "字段名 ">
我是用LEFT   JOIN连接的两个表
如:a表,b表,都有字段Id

SQL:
SELECT   *   FROM   a   LEFT   JOIN   b   ON   a.Id=b.Id

取得的数据集字段为a.Id,b.Id
在绑定 <%#   DataBinder.Eval(Container.DataItem,   "a.Id "> 时,程序出错。

而用SELECT   a.Id   As   Id,b.Id   As   Id2   FROM   a   LEFT   JOIN   b   ON   a.Id=b.Id
因为我用的两个表字段太多,不想一一改名。
要如何才能绑定成 <%#   DataBinder.Eval(Container.DataItem,   "a.Id ">

<%#   DataBinder.Eval(Container.DataItem,   "字段名 "> 还有一种格式为
<%#   DataBinder.Eval(Container,   "DataItem.字段名 ">
DataItem.字段名   与   a.Id   相似。。如何编码才正确呢?

因为这问题我已经用别的方法解决,所以没给很多分。我只是想知道还有没有别的方法解决。。谢谢。。请大家多支持。。

------解决方案--------------------
SELECT * FROM a LEFT JOIN b ON a.Id=b.Id 的查询结果中b.Id的栏位名已经转换为Id1,所以可以使用
<%# DataBinder.Eval(Container.DataItem, "Id "> 绑定a表中的Id, <%# DataBinder.Eval(Container.DataItem, "Id1 "> 绑定b表中的Id;
另外,也可以根据列号访问,如下
<%# DataBinder.Eval(Container, "DataItem[1] ") %>