1

このコードは一見単純に見えますが、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

エラーは発生していませんが、メッセージは表示されません。

何が間違っている可能性がありますか?

4

3 に答える 3

2

この問題は解決されました。私が想像していたよりもはるかに簡単な解決策。

   <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>
于 2013-10-11T14:01:10.567 に答える
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
于 2013-10-09T21:04:02.570 に答える