2013-10-09 30 views
0

這段代碼看起來很簡單,但我試圖在datalist中沒有記錄時顯示一條消息。如何在datalist中顯示「找不到記錄」?

我有這樣的標記:

<asp:DataList ID="DataList1" runat="server" CellPadding="4" 
    DataSourceID="SqlDataSource1" 
    Font-Bold="False" OnSelected="SqlDataSource1_Selected" Font-Names="Verdana" 
    Font-Size="Small" RepeatColumns="2" 
    RepeatDirection="Horizontal" Width="100%" ForeColor="#333333"> 
    <AlternatingItemStyle BackColor="White" ForeColor="#284775" /> 
... 
... 
</asp:DataList> 
<asp:label CssClass="Treb10Blue" ID="lblMsg" runat="server"></asp:Label> 

然後在代碼隱藏,我有這樣的:

Protected Sub SqlDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Selected 

    If e.AffectedRows = 0 Then 
     lblMsg.Visible = True 
     lblMsg.Text = "No records found" 
    Else 
     lblMsg.Text = "" 
    End If 

End Sub 

我沒有得到任何錯誤,但該消息未顯示。

任何想法可能是錯的?

+0

看到這個[問題](http://stackoverflow.com/questions/2756466/need-to-show-a-message-when-datalist-is-empty),可以幫助你 –

+0

*是什麼*「e.AffectedRows」的值? – jadarnel27

回答

1

此問題已解決。比我想象的更容易的解決方案。

<FooterTemplate> 
    <asp:Label forecolor="#9ACD32" Visible='<%# IIF(DataList1.Items.Count=0 And ddlLocation.SelectedItem.Value<>"0", "True", "False")%>' runat="server" ID="lblMsg" Text="No records found"></asp:Label> 
    </FooterTemplate> 
0

這是MSDN的摘錄,也許這是你看到的:

所有操作返回受操作影響的行數。 AffectedRows屬性具有與Update,Insert和Delete方法的返回值 相同的值。

選擇方法被調用和數據源被設置爲 DataReader的模式,返回值是在所有情況下 0。

如果是這樣的話,那麼也許你可以扭轉你的邏輯:

  • 在默認情況下,顯示與
  • 了「沒有找到記錄」標籤創建的DataList的ItemDataBound事件處理程序,並在那裏隱藏標籤(因爲在那種情況下,您至少有一條記錄)
0

您可能想要檢查DataList中的項目數。試試這個:

Protected Sub SqlDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Selected 

    If DataList1.Items.Count = 0 Then 
     lblMsg.Visible = True 
     lblMsg.Text = "No records found" 
    Else 
     lblMsg.Text = "" 
    End If 

End Sub 
+0

如何將您的解決方案綁定到dropdownlist控件? 它的工作,有點。 它顯示消息是否有價值。 所以,我們有4個選項的下拉列表控件。 也許如果我可以將它綁定到dropdownlist控件,那麼如果dropdownlist的值是0,那麼顯示消息。 你能幫忙嗎? – Kenny

+0

將它綁定到任何你的下拉菜單中。 –

+0

我問,你能幫忙嗎? 這意味着我不知道如何。 如果你不知道自己是怎麼做的,但那是沒有答案的。 – Kenny

相關問題