我正在使用更新面板在页面上显示一些结果,并且没有probs正常工作。
如果没有返回任何结果,我想要显示一条消息 - 说没有找到记录。
麻烦的是让asp:panel(pnlNoUsers)可见选项为true或false(其中包含找不到记录的消息是我正在遇到的问题
我的更新面板代码是:
<asp:UpdatePanel ID="pnlCust" runat="server">
<ContentTemplate>
<asp:Panel ID="pnlNoUsers" runat="server" visible="false">
<div class="inner-page-title">
<h2>
No records found.</h2>
</div>
</asp:Panel>
<%=show_cust()%>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnRefresh" />
</Triggers>
</asp:UpdatePanel>
show_cust()函数只返回一个字符串,该字符串将显示在页面上:
If bHasUsers = False Then
pnlNoUsers.Visible = True
Return ""
End If
pnlNoUsers.Visible = False
Return strUsers & "</ul>"
面板“pnlNoUsers”可见性属性是不是在改变?
任何人都知道我该怎么做?
谢谢,
答案 0 :(得分:1)
我不知道您的要求的复杂性,但您可以通过使用数据控件完全跳过条件逻辑。您可以使用具有
的gridview控件您可以使用的EmptyDataText属性。 MSDN: Gridview EmptyDataText property
您可以使用DataSource&amp; amp;手动将gridview控件与数据绑定。 dataBind属性。
答案 1 :(得分:0)
为什么使用show_cust()函数。您可以在按钮单击操作中添加功能。因为最初面板不可见。按钮点击根据条件需要可见。所以添加功能 `
If bHasUsers = False Then
pnlNoUsers.Visible = True
Return ""
End If
pnlNoUsers.Visible = False
Return strUsers & "</ul>"
关于btnRefresh点击事件。它会起作用
答案 2 :(得分:0)
如果没有您的按钮点击事件,很难确定您可能出错的地方。虽然有几个想法:将UpdateMode设置为Conditional,这是一个普通模式,可以使用更新面板,摆脱内联响应写入,这不是处理ASP.NET数据显示的好方法,并添加一个Literal标记,你可以呈现用户的列表。正如Damien所提到的,我将使用ListView,Repeater或GridView(按此顺序)来呈现您的用户列表,而不是在代码中生成无序列表并将其写入浏览器。
<asp:UpdatePanel ID="pnlCust" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="pnlNoUsers" runat="server" Visible="false">
<div class="inner-page-title">
<h2>No records found.</h2>
</div>
</asp:Panel>
<asp:Literal ID="CustomerListLiteral" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnRefresh" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" />
在按钮点击事件中处理更新面板工作。我敢打赌,你写的内联响应没有触发更新面板工作。这应该做你想要的。
Protected Sub btnRefresh_Click(sender As Object, e As EventArgs)
Dim bHasUsers As Boolean = False
Dim strUsers As String = String.Empty
If bHasUsers = False Then
pnlNoUsers.Visible = True
Else
pnlNoUsers.Visible = False
CustomerListLiteral.Text = strUsers & "</ul>"
End If
' Force an update refresh if necessary, but this shouldn't be needed
pnlCust.Update()
End Sub