Displaying a template when no records match. : GridView « Data Binding « ASP.NET Tutorial





<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        grdProducts.Visible = true;
    }

    protected void dtlProduct_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
    {
        txtTitle.Text = (string)e.Values["Title"];
        grdProducts.DataBind();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Show Empty Data Template</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    <asp:TextBox
        id="txtTitle"
        Runat="server" />
    <asp:Button
        id="btnSubmit"
        Text="Search"
        OnClick="btnSubmit_Click"
        Runat="server" />
    <hr />

    <asp:GridView
        id="grdProducts"
        DataSourceID="srcProducts"
        Visible="false"
        Runat="server">
        <EmptyDataTemplate>
        
        No matching products were found. 
        
        <asp:DetailsView
            id="dtlProduct"
            DataSourceID="srcProducts"
            DefaultMode="Insert"
            AutoGenerateInsertButton="true"
            AutoGenerateRows="false"
            Runat="server" 
            OnItemInserted="dtlProduct_ItemInserted">
            <Fields>
            <asp:BoundField
                HeaderText="Title:"
                DataField="Title" />
            <asp:BoundField
                HeaderText="Director:"
                DataField="Director" />
            </Fields>
        </asp:DetailsView>

        </EmptyDataTemplate>
    </asp:GridView>

    <asp:SqlDataSource
        id="srcProducts"
        ConnectionString="<%$ ConnectionStrings:Products %>"
        SelectCommand="SELECT Title,Director FROM Products WHERE Title LIKE @Title+'%'"
        InsertCommand="INSERT Products (Title, Director)
            VALUES (@Title, @Director)"
        Runat="server">
        <SelectParameters>
        <asp:ControlParameter
            Name="Title"
            ControlID="txtTitle"
            PropertyName="Text" />
        </SelectParameters>
    </asp:SqlDataSource>

    </div>
    </form>
</body>
</html>

File: Web.config

<configuration>
  <connectionStrings>
    <add name="Products" 
         connectionString="Data Source=.\SQLEXPRESS;
         AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" />
  </connectionStrings>
</configuration>










19.17.GridView
19.17.1.Set RowStyle and HeaderStyle for GridView
19.17.2.GridView DataBind
19.17.3.GridView with template
19.17.4.Using Programmatic DataBinding
19.17.5.Use asp:SqlDataSource and asp:GridView to edit database table
19.17.6.Pageable asp:GridView
19.17.7.Sortable GridView
19.17.8.DataBinding to GridView (C#)
19.17.9.Assign data source to GridView
19.17.10.Editing Data
19.17.11.Prevent concurrency conflict
19.17.12.Displaying a message when no records match.
19.17.13.Displaying a template when no records match.
19.17.14.Formatting the GridView Control
19.17.15.Using Fields with the GridView Control
19.17.16.Using the PagerStyle and PagerSettings objects in the GridView control
19.17.17.Using the Null value