2 つの SelectCommands を使用する場合、SelectedIndexChanging ハンドラーで選択されたアイテムを取得するにはどうすればよいですか? 選択した行を e.SelectedRow で取得できますが、選択した列を取得できません。
GridView に複数の SelectCommand があるのは正しいですか? そうでない場合、最善の方法は何ですか?
2 つの SelectCommands を使用する場合、SelectedIndexChanging ハンドラーで選択されたアイテムを取得するにはどうすればよいですか? 選択した行を e.SelectedRow で取得できますが、選択した列を取得できません。
GridView に複数の SelectCommand があるのは正しいですか? そうでない場合、最善の方法は何ですか?
グリッドビューで列を選択するのではなく、行を選択します。行の特定のフィールドを「選択可能」にしたい場合は、HyperLinkField または ButtonField を使用して、そのイベントを処理することを検討してください。しかし、私の知る限り、確かにそれは限られています.GridViewとそのSelectedRowプロパティだけでは、行が選択されたときに行のどのフィールドが「選択された」かを知る方法はありません.
select コマンドを使用する必要はありません。テンプレート フィールドを使用してそれに名前付きコマンドを追加すると、RowCommand イベントでどれがクリックされたかを確認できます (行インデックスも取得できます)。以下を参照してください。
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="MyCommand" Text="Button" CommandArgument='<%# Container.DataItemIndex %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
以下の RowCommend イベント
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName.Equals("MyCommand"))
{
int row = Int32.Parse(e.CommandArgument.ToString());
}
}