5

EmptyDataTemplateまたは のいずれかEmptyDataTextが機能しないようですGridView

GridViewコードビハインドでコンテンツを取得し、使用して添付していDataBind()ます。私はそれらをnull空のままにしてみましたが、どちらの場合も、またはList入力したテキストは表示されません。EmptyDataTemplateEmptyDataText

私は何を間違っていますか?

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

これは私のGridViewです:

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

そして、データをバインドするためにこれら2つを試しました:

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

grid.DataSource = null;
grid.DataBind();
4

5 に答える 5

5

この問題は、いわゆるCSS-Friendly Control Adaptersを使用することによって発生します。それらを有効にすると(デフォルトで有効になっているように見えます)、期待どおりに機能EmptyDataTemplateEmptyDataTextません。

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

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

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

于 2010-06-09T13:13:48.273 に答える
4

同様の問題に遭遇し、データソースが空の場合にデータバインディング メソッドを無視するというロジックが DataBind にあることに気付きました。

于 2011-06-03T19:53:51.143 に答える
2

EmptyDataTemplateany をオーバーライドする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();

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

于 2010-06-03T14:01:57.100 に答える
1

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

    <Columns>
             ............
             ............
             ............
    <Columns>
<EmptyDataTemplate>
        <asp:Label ID="lblEmptyTxt" runat="server" Text="No Data"></asp:Label>
      </EmptyDataTemplate>
                        </asp:GridView>
于 2012-12-12T10:07:52.753 に答える
0

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

于 2012-02-12T16:27:59.583 に答える