日期:2014-05-18  浏览次数:20395 次

Eval绑定语法相关
有这段代码
<asp:Repeater ID="rpt_Board" runat="server" OnItemCommand="rpt_Board_ItemCommand" DataSource='<%#((DataRowView)Container.DataItem).Row.GetChildRows("RelationBetweenClassAndBoard")%>'>
  <ItemTemplate>
  <tr>
  <td>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|--------
  <asp:Button ID="btn_delboard" runat="server" CommandArgument='<%#Eval("[\"boardid\"]") %>' CommandName="delboard" Text="X删除版块" OnClientClick="return confirm('确定删除版块吗?删除版块会清除版块下的所有帖子!')" />
  <asp:TextBox ID="td_boardname" runat="server" Text='<%#Eval("[\"boardname\"]") %>'></asp:TextBox>
  <asp:Button ID="btn_modifyboard" runat="server" CommandName="modifyboard" Text="√修改版块" CommandArgument='<%#Eval("[\"boardid\"]") %>' />
  </td>
  </tr>
  </ItemTemplate>
  </asp:Repeater>
这个repeater是嵌在另一个repeater里面的,我想问为什么子repeater里绑定语法要像这样写<%#Eval("[\"boardname\"]") %>,而不是<%#Eval("boardname") %>
还有请问这段代码是什么意思?<%#((DataRowView)Container.DataItem).Row.GetChildRows("RelationBetweenClassAndBoard")%>
谢谢


------解决方案--------------------
因为他的列名是["boardname"]所以要那么写了撒
------解决方案--------------------
<%#((DataRowView)Container.DataItem).Row.GetChildRows("RelationBetweenClassAndBoard")% > 

先转换为DataRowView类型

RelationBetweenClassAndBoard列吧