の[編集]オプションを削除するにはEmptyDatatemplateとコマンドフィールド</p> <p>を次のように私のGridViewがあるGridViewの
<asp:GridView ID="AGridView" runat="server" AutoGenerateColumns="true" style="table-layout:fixed;" Width="2000px" RowStyle-HorizontalAlign="Left">
<EmptyDataTemplate>
</EmptyDataTemplate>
<asp:CommandField ShowEditButton="True" ItemStyle-Width="80px" EditText="Edit">
<ItemStyle Font-Bold="true" Font-Size="Small" />
<HeaderStyle CssClass="AAddOn" />
</asp:CommandField>
</asp:GridView>
は、GridViewのは(それが唯一の2行を持っている)今
Name Age Country
A 10 NNN Edit
B 23 NNN Edit
私はいけないように見えました最初の行に表示されるように編集ボタンが必要です。私はそれを行うことができます。
ここでは2行だけが表示されます。
Name Age Country
A 10 NNN
B 23 NNN Edit
ここで、ヘッダーはGridviewヘッダーセルの数であり、私の編集は最後のセルにあります。 は、(私のGridViewの動的に生成された列を生成したが、私は、したがって、ヘッダ・カウントを使用する固定列の値を取ることができないように、わずか2行を有する)
Dim Header As Integer
For counts = 0 To AGridView.HeaderRow.Cells.Count
Header = counts
Next
Dim edit as LinkButton = DirectCast(AGridView.Rows(0).cell(header).FindControl("Edit"),LinkButton)
edit.Visible = False
上記のエラーメッセージがinstance.Indexに設定されていないオブジェクト参照範囲の外です。
次は私がようAGridView_Rowdatabound内部で試してみましたが、全細胞は.Iが偽であることを目に見えるLinkButtonの最初の行だけ編集が必要に消えているに見えるだけで最初の行の[編集]ボタンを必要なもの、私はhere.I行方不明です
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Cells(Header).Visible = False
End If
偽です。質問のコメント欄での議論をもとに
のhttpをご覧ください:// S tackoverflow.com/questions/1461302/conditionally-hide-commandfield-or-buttonfield-in-gridview – davke
こんにちは私は解決策を見たが、私はboundfieldsを持っていない...私のgridviewは2行だけを示しているので、私はgridview rowdataboundでこれを行うことができます。行(1)ボタンが同様にfalseであるべきであるように意味する – havin
私は 'それは重要だと思う。受け入れられた答えのアイデアは、あなたが条件付きでVisibleプロパティを設定できる編集コマンドボタンを作成できるItemTemplateでCommandField(あなたが持っている)を置き換えることです。代わりに、答えの一番下に提案された解決策を試すことができますhttp://stackoverflow.com/a/7188143/4955259。代わりに、CommandFieldイベントハンドラとRowDataBoundイベントハンドラを使用しているようです。 – davke