0

現在、次のように、ButtonColumn を含む ASP DataGrid があります。

<asp:DataGrid id="gradesGrid"
              AutoGenerateColumns="true"
              runat="server"
              OnSelectedIndexChanged="GradesDataGridSelectedCallback">
    <Columns>
        <asp:ButtonColumn HeaderText=""
                          ButtonType="LinkButton"
                          Text="Graph"
                          CommandName="Select">
        </asp:ButtonColumn>
    </Columns>
</asp:DataGrid>

これは完全に機能します。ボタン列をクリックすると、GradesDataGridSelectedCallback関数が呼び出され、すべてが素晴らしいです。グリッド項目に関連する別の機能を実行するために、このデータ グリッドに 2 番目のボタン列を追加する必要があります。余分なコードを追加します:-

<asp:ButtonColumn HeaderText=""
                  ButtonType="LinkButton"
                  Text="Display"
                  CommandName="NewFunction">
</asp:ButtonColumn>

これは期待どおりに表示されますが、2 番目のボタンをクリックしても (ポストバックが発生しますが)、GradesDataGridSelectedCallback関数は呼び出されません。問題は、この 2 番目の ButtonColumn を C# コードビハインドの特定の関数に接続する方法です。

または、ボタン列を指定すると:-

<asp:ButtonColumn HeaderText=""
                  ButtonType="LinkButton"
                  Text="Display"
                  CommandName="Select">
</asp:ButtonColumn>

その後、GradesDataGridSelectedCallbackが呼び出されますが、どの ButtonColumn がクリックされたかを判断する方法がわかりません。方法はありますか? もしそうなら、それは何ですか?

4

2 に答える 2

1

それ以外の

OnSelectedIndexChanged="GradesDataGridSelectedCallback"

使用する

OnItemCommand ="GradesDataGridSelectedCallback"

そして、あなたを次のように定義しGradesDataGridSelectedCallbackます

Protected void GradesDataGridSelectedCallback(Object source , DataGridCommandEventArgs e)

End Sub

チェックe.CommandNameすると、どのボタンがクリックされたかがわかります。

于 2013-07-30T14:06:02.480 に答える
1

OnSelectedIndexChangedではなく ItemCommandイベントを使用します。すべてのボタンに対して発生します。

<asp:DataGrid ID="dtGrg" runat="server" AutoGenerateColumns="true" 
                            onitemcommand="dtGrg_ItemCommand">
                            <Columns>
                                <asp:ButtonColumn HeaderText="" ButtonType="LinkButton"  Text="Graph"  CommandName="Select">
                                </asp:ButtonColumn>
                                <asp:ButtonColumn HeaderText="" ButtonType="LinkButton" Text="Display" CommandName="NewFunction" >
                                </asp:ButtonColumn>
                            </Columns>
                        </asp:DataGrid>

protected void dtGrg_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            if (e.CommandName == "NewFunction")
            { 
             //Your Code Here :
            }
             if (e.CommandName == "Select")
            {
                //Your Code Here :
            }
        }

OnSelectedIndexChangedは、選択ボタンに対してのみ機能します。

于 2013-07-30T14:44:28.247 に答える