为什么不会的DataBinder.Eval工作
-
27-09-2019 - |
题
我想创建使用中继器一个简单的菜单系统。在系统我想使用类子项的不同格式和想使用如果“类”的如果检查结果DataBinders和分支机构,但是当我编译代码是说:
名称“容器”未声明。
在所有在线教程和MSDN上的Container.DataItem只是假定的工作,所以我不能找到它不工作的任何信息。谁能谁使用databinders超过我解释一下吗?
<asp:Repeater ID="TopNavRepeat" runat="server" DataSourceID="SqlDataSource1" >
<HeaderTemplate>
<ul id="nav">
</HeaderTemplate>
<ItemTemplate>
<li>
<asp:HiddenField ID="LinkIdField1" Value='<%# Eval("id") %>' runat="server"
OnDataBinding="LinkIdField_ValueChanged" OnValueChanged="LinkIdField_ValueChanged"/>
<asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("Url") %>'
ToolTip='<%# Eval("Description") %>'>
</asp:HyperLink>
<ul>
<!-- -->
<% If (CStr(DataBinder.Eval(Container.DataItem, "Title")) = "Classes")THEN %>
<asp:Repeater ID="ClassDownList" runat="server" DataSourceID="ClassDS">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<li><asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("name") %>' NavigateUrl='<%# "/Class/" & helpers.urlSafe(CStr(Eval("name"))) %>'
ToolTip='<%# CStr(Eval("name")) & " home page" %>' /></li>
</ItemTemplate>
<FooterTemplate></FooterTemplate>
</asp:Repeater>
<% Else %>
<asp:Repeater ID="DropDownList" runat="server" OnLoad="ChildDataList_Init">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<li><asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("Url") %>'
ToolTip='<%# Eval("Description") %>' /></li>
</ItemTemplate>
<FooterTemplate></FooterTemplate>
</asp:Repeater>
<%End If %>
</ul>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
解决方案
我认为ü不能使用<% If %>
内一个中继器
刚刚集合.Visible=False
到它们中的一个在服务器端
或尝试(不知道这作品)
<asp:Repeater Visible='<%# (CStr(DataBinder.Eval(Container.DataItem, "Title")) = "Classes") %>'>
其他提示
我不是一个VB的家伙,但是是不是因为你正在做的任务,而不是一个比较呢?
<%# If (CStr(DataBinder.Eval(Container.DataItem, "Title")) = "Classes")THEN %>
如果它不是:
<%# If (CStr(DataBinder.Eval(Container.DataItem, "Title")) == "Classes")THEN %>
不隶属于 StackOverflow