2

2 つの SelectCommands を使用する場合、SelectedIndexChanging ハンドラーで選択されたアイテムを取得するにはどうすればよいですか? 選択した行を e.SelectedRow で取得できますが、選択した列を取得できません。

GridView に複数の SelectCommand があるのは正しいですか? そうでない場合、最善の方法は何ですか?

4

2 に答える 2

4

グリッドビューで列を選択するのではなく、行を選択します。行の特定のフィールドを「選択可能」にしたい場合は、HyperLinkField または ButtonField を使用して、そのイベントを処理することを検討してください。しかし、私の知る限り、確かにそれは限られています.GridViewとそのSelectedRowプロパティだけでは、行が選択されたときに行のどのフィールドが「選択された」かを知る方法はありません.

于 2011-06-15T23:29:38.333 に答える
3

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());


                }


            }
于 2011-06-15T23:52:25.210 に答える