The following code works well as long as I pass a querystring value to the datalist.
Private Sub BindGrid()
Dim id As Integer = Integer.Parse(Context.Request.QueryString("id"))
Dim strConnString As String = ConfigurationManager.ConnectionStrings("Conn").ConnectionString
Using con As New SqlConnection(strConnString)
Using cmd As New SqlCommand()
cmd.CommandText = "select Id, Name from tblFiles where Id=@Id"
cmd.Parameters.AddWithValue("@Id", id)
cmd.Connection = con
con.Open()
DataList1.DataSource = cmd.ExecuteReader()
DataList1.DataBind()
con.Close()
End Using
End Using
End Sub
However, the page errors with the message "Value cannot be null." if I don't pass a value. I know that DataList does not have an EmptyItem Property like a Gridview control. I do not want the page to error if I don't pass a value. If someone can offer a suggestion on dealing with empty values in a datalist it would be helpful.
Most websites have pointed me to this code to use:
<FooterTemplate>
<asp:Label ID="lblEmpty" Text="No Result" runat="server"
Visible='<%#boolean.parse(([b]list[/b].Items.Count=0).ToString())%>'>
</asp:Label>
</FooterTemplate>
The 'list' throws an error. The error is "Too few type arguments to 'System.COllections.Generic.List". I am not sure if the code is written in C# and that is what is causing the error. It seems that it should work but I can not figure out the 'list' error.