[讨论]<%# 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] ") %>