emptyDatatemplateおよびemptyDatatext gridviewで動作していません
-
24-10-2019 - |
質問
私も得ることができないようです EmptyDataTemplate
また EmptyDataText
の GridView
働くために。
私はフェッチしています 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に優しいコントロールアダプター. 。それらを有効にして(そしてデフォルトで有効になっているようです)、 EmptyDataTemplate
と EmptyDataText
期待どおりに機能しないでください。
アダプターを無効にするには、に移動します 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プロパティは設定されておらず、デフォルトでは白になりました。