3

EmptyDataTemplateを使用するASP.NETGridViewがあります。このテンプレートは、データソースにレコードが存在しない場合にデータを収集するために使用されます。私のGridViewソースは次のようになります。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="Lecturer" CellPadding="4"
ForeColor="#333333" GridLines="None" style="text-align: center" allowsorting="True">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
    <asp:BoundField DataField="name" HeaderText="Name" SortExpression="name" />
    <asp:HyperLinkField HeaderText="URL" SortExpression="url" DataNavigateUrlFields="url" Text="Link"  ItemStyle-Width="100" />  
</Columns>

<EmptyDataTemplate>
    No data found!
</EmptyDataTemplate>

<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 

ここでの問題は、ボタン検索がクリックされた後に空のデータテンプレートを表示したいのですが、今はページを開くたびに、まだ検索をしていなくても空のデータテンプレートが表示されます。

4

4 に答える 4

11

使用:次

EmptyDataText="No data found!"

のようなグリッドで:

<asp:GridView ID="GridView1" EmptyDataText="No data found!" ....>

あなたのやり方は間違っています。EmptyDataTemplateこの目的には使用されません。

于 2012-06-23T09:09:53.980 に答える
1

EmptyDataTemplate検索に一致するレコードがない場合に検索するときに、グリッドビューのセットを削除EmptyDataTextします。

于 2012-06-23T09:09:01.507 に答える
1

検索ボタンのクリックではなく、Page_Load イベントで GridView をバインドしているようです。バインド コードを別のメソッドに移動し、クリック イベントで検索ボタンがクリックされたときにそのメソッドを呼び出します。

于 2012-06-23T09:26:52.647 に答える
0

これを試して:

private DataTable GetDataTable(Boolean blnIsReturnNull)
{
        DataTable tblReturnTable = new DataTable();
        tblReturnTable.Columns.Add("name");
        tblReturnTable.Columns.Add("URL");
        if (blnIsReturnNull)
        {
            return tblReturnTable;
        }
        for (int intCounter = 0; intCounter < 10; intCounter++)
        {
            //Build of tblReturnTable
        }
        return tblReturnTable;
}

 protected void cmdEmptyGridView_Click(object sender, EventArgs e)
    {
        GridView1.DataSource = GetDataTable(true);
        GridView1.DataBind();
    }


<asp:Button ID="cmdEmptyGridView" runat="server" Text="Empty GridView" OnClick="cmdEmptyGridView_Click"
                            CssClass="Button" /></td>
于 2012-06-23T09:10:12.077 に答える