フッターからデータを挿入するためのグリッドビューにデータがないときにフッターを表示する方法。データがバインドされていないときにGridViewフッターが表示されるようにする
5
A
答えて
4
これを行う最も簡単な方法は、長さが1の配列をバインドすることです。その中に何かを置くことができます。これは、これがダミー行であることを識別するのが好きです。 GridViewsのRowDataBoundメソッドで、データ項目がダミー行かどうかを確認します(データをチェックする前にRowTypeがDataRowであることを確認してください)。ダミー行であれば、行の可視性をfalseに設定します。フッターとヘッダーはデータなしで表示されるはずです。
GridViewでShowFooterプロパティをtrueに設定していることを確認してください。
例えば、
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostback)
{
myGrid.DataSource = new object[] {null};
myGrid.DataBind();
}
}
protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.DataItem == null)
{
e.Row.Visible = false;
}
}
}
0
Here is the simple way GridViewに空のデータがある場合にフッターを表示する。
/// <summary>
/// Ensures that the grid view will contain a footer even if no data exists.
/// </summary>
/// <typeparam name="T">Where t is equal to the type of data in the gridview.</typeparam>
/// <param name="gridView">The grid view who's footer must persist.</param>
public static void EnsureGridViewFooter<T>(GridView gridView) where T: new()
{
if (gridView == null)
throw new ArgumentNullException("gridView");
if (gridView.DataSource != null && gridView.DataSource is IEnumerable<T> && (gridView.DataSource as IEnumerable<T>).Count() > 0)
return;
// If nothing has been assigned to the grid or it generated no rows we are going to add an empty one.
var emptySource = new List<T>();
var blankItem = new T();
emptySource.Add(blankItem);
gridView.DataSource = emptySource;
// On databinding make sure the empty row is set to invisible so it hides it from display.
gridView.RowDataBound += delegate(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem == (object)blankItem)
e.Row.Visible = false;
};
}
次を使用することができ、それを呼び出すために:ここで
+1
それは間違いなく良い考えです。 – abatishchev
2
は私が細工したことは簡単なものだ
MyGridView.DataSource = data;
EnsureGridViewFooter<MyDataType>(MyGridView);
MyGridView.DataBind();
は、この情報がお役に立てば幸いです。乾杯!
関連する問題
- 1. データテーブルにバインドされたときにコンボボックスでデータが表示されないデータグリッド
- 2. WPF ComboBox - アイテムがバインドされていないときに何か違うものが表示される
- 3. データがgridView Androidに表示されない
- 4. gridview to formview - フォームビューにデータが表示されない
- 5. DataGridViewにバインドされたDataTableに行が表示されない
- 6. OleDbDataReaderでGridViewが表示されない
- 7. Gridviewが表示されない
- 8. ソフトキーボードが表示されているときにダイアログが表示されます
- 9. バインドされていない詳細ビューがASP.NET/VB.NETに表示されない
- 10. 表示アイテムがリストアイテムに設定されているときに箇条書きが表示されない
- 11. データが表示されていないときにuilabelを追加する
- 12. jqGridにデータが表示されない
- 13. Flexigridにデータが表示されない
- 14. データがデータグリッドビューに表示されない
- 15. IEで表示されているときにiframe内に隠されたテキストボックスが表示されない
- 16. TortoiseSVNオーバーレイアイコンが表示されないときに表示されない
- 17. モバイルキーボードが表示されているときにtransform3dが画面に表示されない場合
- 18. RecyclerViewアイテムにチェックボックスが表示されているときに波紋/タッチのフィードバックが表示されない
- 19. 2番目のフォームが表示されているときにUIがロックされないようにするにはどうすればよいですか?
- 20. PDFにヘッダーとフッターイメージを追加する:ヘッダーイメージが表示されない、フッターがスケールアップされる
- 21. JQuery Mobileのフッター項目が1行に表示されない
- 22. Androidウィジェットが表示されていないときに更新されない
- 23. 既にバインドされているソケットにアプリケーションがバインドされないようにする
- 24. リリースモードでアプリケーションが起動されているとき、デバッグ中に表示されているときにフォームが表示されない
- 25. キーボードが表示されているときに同様にピッカービューが表示されるときのスクロール画面
- 26. データが表示されないように保存していますか?
- 27. C#トレイコンテキストメニューメッセージボックスが表示されないときに隠さない
- 28. アンドロイドウェブビューに広告が表示されないようにする
- 29. UISearchBarタップにUIKeyboardが表示されないようにする
- 30. ASP.netバインドされていない列を非表示にする
これは、自動生成列== false、他のアイデアでは機能しませんか? – msbyuva
これまで何度もやったことがあるはずです。ページの読み込み時に何かに縛られていることを確認しましたか? – Mike737
グリッド定義でDataKeyNamesが指定されているため、これは私のためには機能しませんでした。 DataKeyNamesとグリッドが削除されました。データが表示されていないときにフッターだけが表示されている場合は通常通り表示されます。 – YeeHaw1234