質問

私も得ることができないようです EmptyDataTemplate また EmptyDataTextGridView 働くために。

私はフェッチしています GridView De CodeBehindのコンテンツと使用でそれらを取り付けます DataBind(). 。私はそれらを持ってみました null そして空のように List, 、そしてどちらの場合も、私が入れたテキスト EmptyDataTemplate また EmptyDataText 表示されていません。

私は何が間違っているのですか?

編集 (コードスニペット)

これが私のgridviewです:

<asp:GridView ID="grid" runat="server" EmptyDataText="EMPTY">
</asp:GridView>

そして、私はこれら2つを試してデータをバインドしました。

grid.DataSource = new List<object>();
grid.DataBind();

grid.DataSource = null;
grid.DataBind();
役に立ちましたか?

解決

この問題は、いわゆるものを使用することによって引き起こされます CSSに優しいコントロールアダプター. 。それらを有効にして(そしてデフォルトで有効になっているようです)、 EmptyDataTemplateEmptyDataText 期待どおりに機能しないでください。

アダプターを無効にするには、に移動します App_Browsers フォルダー、および CSSFriendlyAdapters.browser ファイル、次のセクション(または使用しているコントロールに関連するセクション)にコメントしてください。

<adapter controlType="System.Web.UI.WebControls.GridView"
               adapterType="CSSFriendly.GridViewAdapter" />

大きな問題は、スタイルがなくなることです。

他のヒント

私は同様の問題に遭遇し、DataSourceが空である場合、データバインディング方法を無視するためにデータビンドの周りにロジックがあることに気付きました。

EmptyDataTemplate あらゆるものをオーバーライドします EmptyDataText, 、ですから、テンプレートを何らかの形で誤って定義した可能性があります。 EmptyDataText.

空のリストをGridViewにバインドする場合、 EmptyDataText, 、あなたが矛盾を持っていない限り EmptyDataTemplate, 、例:

<%-- GridTest.ascx --%>
<asp:GridView ID="Grid" runat="server" EmptyDataText="No Data!" />

// GridTest.ascx.cs
Grid.DataSource = new List<object>();
Grid.DataBind();

あなたはこれと違うことをしていますか?

ユーザー空のデータテンプレートを使用できますか?

    <Columns>
             ............
             ............
             ............
    <Columns>
<EmptyDataTemplate>
        <asp:Label ID="lblEmptyTxt" runat="server" Text="No Data"></asp:Label>
      </EmptyDataTemplate>
                        </asp:GridView>

そして、私がしたことをしないでください - GridView ForeColorプロパティは設定されておらず、デフォルトでは白になりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top