ユーザーはクエリで返す列を選択できるため、自動生成された列を使用するgridviewがあります。アイデンティティを持つ列を非表示にしたい自動生成された列を非表示にするにはどうすればよいですか?データバインドされたイベントであっても、列数はゼロです。Gridviewで自動生成された列を非表示にする
8
A
答えて
14
を私はこれを行う方法を発見しました。 rowdataboundイベントを使用し、行がバインドされているときにセルを非表示にする必要があります。
Protected Sub ResultGrid_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles ResultGrid.RowDataBound
e.Row.Cells(1).Visible = False
End Sub
0
0
1
3210
1
私は次のように問題を回避ハッキングしてきました。私は、私に正しい列インデックスを与え、その後、必要な列を隠すヘルパー関数を書いています。ヘルパー関数が設定されたら、gridview_databound関数から1つのライナーを呼び出すだけです。
protected void grd_DataBound(object sender, EventArgs e)
{
try
{
HideAutoGeneratedGridViewColumn(grd, "nContractID");
}
catch (Exception ex)
{
}
}
public int getColumnIndex(GridView grd, string sColumnName)
{
return getColumnIndex(grd, sColumnName, false);
}
/// <summary>
/// Returns the columns index of the specified column based on the header text.
/// </summary>
/// <param name="grd"></param>
/// <param name="sColumnName"></param>
/// <returns></returns>
public int getColumnIndex(GridView grd, string sColumnName, bool bAutoGeneratedColumn)
{
int ReturnVal = -1;
try
{
if (grd != null)
{
if (!bAutoGeneratedColumn)
{
#region Static Columns
if (grd.Columns.Count > 0)
{
for (int x = 0; x < grd.Columns.Count; x++)
{
if (grd.Columns[x] != null)
{
if (grd.Columns[x].HeaderText.ToLower() == sColumnName.ToLower())
{
ReturnVal = x;
break;
}
}
}
}
#endregion
}
else
{
#region AutoGenerated Columns
if (grd.HeaderRow != null)
{
for (int x = 0; x < grd.HeaderRow.Cells.Count; x++)
{
if (grd.HeaderRow.Cells[x] != null)
{
if (grd.HeaderRow.Cells[x].Text.ToLower() == sColumnName.ToLower())
{
ReturnVal = x;
break;
}
}
}
}
#endregion
}
}
}
catch (Exception ex)
{
ReturnVal = - 1;
LogMessage("getColumnIndex(GridView grd, string sColumnName, bool bAutoGeneratedColumn) Error", ex.Message);
}
return ReturnVal;
}
/// <summary>
/// Returns the columns index of the specified column based on the header text.
/// </summary>
/// <param name="sColumnName"></param>
/// <param name="r"></param>
/// <returns></returns>
public int getColumnIndex(string sColumnName, GridViewRow r)
{
int ReturnVal = -1;
try
{
if (r != null)
{
if (r.Cells.Count > 0)
{
for (int x = 0; x < r.Cells.Count; x++)
{
if (r.Cells[x] != null)
{
if (((System.Web.UI.WebControls.DataControlFieldCell)(r.Cells[x])).ContainingField.HeaderText == sColumnName)
{
ReturnVal = x;
break;
}
}
}
}
}
}
catch (Exception ex)
{
ReturnVal = -1;
}
return ReturnVal;
}
public void HideAutoGeneratedGridViewColumn(GridView grd, string sColumnName)
{
HideAutoGeneratedGridViewColumn(grd, getColumnIndex(grd, sColumnName, true));
}
public void HideAutoGeneratedGridViewColumn(GridView grd, int nColumnIndex)
{
try
{
grd.HeaderRow.Cells[nColumnIndex].Visible = false;
for (int x = 0; x < grd.Rows.Count; x++)
{
grd.Rows[x].Cells[nColumnIndex].Visible = false;
}
}
catch (Exception ex)
{
LogMessage("HideAutoGeneratedGridViewColumn(GridView grd, int nColumnIndex) Error", ex.Message);
}
}
0
これは、自動生成された列見出しとセルを非表示にします。これは、自動列は、列のコレクションに含まれていません生成さhere
Protected Sub Gdvisitor_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Gdvisitor.RowCreated
If (e.Row.Cells.Count > 1) Then
e.Row.Cells(1).Visible = False
End If
End Sub
関連する問題
- 1. JSPで自動生成された主キーを表示
- 2. PHP:自動生成されたXMLキャリッジリターンエンティティがSimpleXMLとxpathで表示される
- 3. 動的に作成されたJavascript配列を非表示にする
- 4. DataGridコントロールで自動生成された列をカスタマイズする
- 5. Eclipseのメニューバーを非表示にする(自動非表示)
- 6. JavaScriptを使ってGridviewの列を非表示/非表示にする
- 7. Excelの列を自動的に表示する(非表示にする)
- 8. Gridviewを非表示
- 9. DataGridViewで自動生成された列を非表示にするにはどうすればよいですか?
- 10. Yesodで動的に生成された画像を表示
- 11. ASP.Net GridViewで自動生成された列を書式設定する方法は?
- 12. 列が自動生成されるasp.net gridviewに新しい列を追加する方法?
- 13. ASP.NET MVCで自動生成されたコードを表示するにはどうすればよいですか?
- 14. 自動生成されたチェックボックスfeildをラジオボタンの代わりに自動生成列のグリッド表示に置き換えます。
- 15. WPFで動的に生成されたGridViewバインディング
- 16. appceleratorで自動生成されたindex.htmlをカスタマイズするには
- 17. 自動的に生成された配列内の値のセット?
- 18. クリック時に動的に作成されたテーブル行を非表示にする
- 19. グリッドの動的に作成された子要素を非表示にする
- 20. symfony 2:自動生成されたナビゲーションメニュー
- 21. 自動生成されたpdf
- 22. プラグインで作成されたオールの表示/非表示
- 23. 自動生成されないContextMenuは表示されません
- 24. ASP.NETページで動的に生成されたビットマップを表示する
- 25. 要素を非表示にしますが、CSSで生成されたコンテンツを表示します
- 26. Symfony2:サブコントローラで生成されたフラッシュメッセージを表示するには
- 27. Windowsフォーム、動的に生成されたビットマップ上の表示インジケータ
- 28. Eclipse - 生成されたクラスファイルを表示
- 29. ASP.NET GridViewは列を非表示にできません
- 30. 動的に生成されたテーブルには '0'が表示されます
+1、注目するのは、適切なRowTypesに対して変更することだけです。たとえば、(e.Row.RowType!= DataControlRowType.Pager){e.Row.Cells [1] .Visible = false; } –