2013-07-30 43 views
0

我現在有一個ASP的DataGrid在它ButtonColumn,像這樣: -如何讓它有兩個ButtonColumns的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函數被調用,並且都是奇妙的。我現在需要在此數據網格中添加第二個按鈕列,以執行與網格項目相關的其他功能。我添加了額外的代碼: -

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

這顯示預期,但單擊第二個按鈕(儘管它會導致後回),不調用GradesDataGridSelectedCallback功能。問題是,如何將第二個ButtonColumn連接到C#代碼隱藏的特定函數?

或者,如果我指定的鍵列,因此: -

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

那麼GradesDataGridSelectedCallback不會被調用,但我看不到確定哪個ButtonColumn被點擊的任何方式。有沒有辦法,如果有的話,它是什麼?

回答

1

而不是

OnSelectedIndexChanged="GradesDataGridSelectedCallback" 

使用

OnItemCommand ="GradesDataGridSelectedCallback" 

,並定義爲GradesDataGridSelectedCallback

Protected void GradesDataGridSelectedCallback(Object source , DataGridCommandEventArgs e) 

End Sub 

檢查e.CommandName會給你指出哪個按鈕被點擊。

1

使用ItemCommand事件,而不是OnSelectedIndexChanged將火everybutton。

<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將只選擇按鈕的工作。

相關問題