2010-05-14 75 views
1

我有一个绑定到SQL查询的ASPXGRIDVIEW。 我给网格添加了一个额外的COLUMNCUSTOMBUTTON。 但是会发生什么,对于所有的行,它会在那里放置一个链接。 我试图找到一种方法来添加到这一列的链接(按钮)只有特定的行!devexpress ASPxGridView列问题

我无法理解怎么办呢

感谢

回答

3

添加自定义按钮,在ASPX侧添加到您的命令列:

<dxwgv:ASPxGridView ID="grid" ClientInstanceName="grid" runat="server" DataSourceID="AccessDataSource1" KeyFieldName="EmployeeID" AutoGenerateColumns="False" Width="100%" OnCustomButtonCallback="grid_CustomButtonCallback" OnInitNewRow="grid_InitNewRow"> 
    <Columns> 
     <dxwgv:GridViewCommandColumn VisibleIndex="0"> 
      <EditButton Visible="True" /> 
      <NewButton Visible="True" /> 
      <CustomButtons> 
       <dxwgv:GridViewCommandColumnCustomButton Text="Create a Copy" ID="Copy" /> 
      </CustomButtons> 
     </dxwgv:GridViewCommandColumn> 

在你的代码隐藏然后:

public partial class GridEditing_EditForm : BasePage { 
protected void Page_Load(object sender, EventArgs e) { 

} 

Hashtable copiedValues = null; 
string[] copiedFields = new string[] { "FirstName", "Title", "Notes", "LastName", "BirthDate", "HireDate" }; 
protected void grid_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e) { 
    if(e.ButtonID != "Copy") return; 
    copiedValues = new Hashtable(); 
    foreach(string fieldName in copiedFields) { 
     copiedValues[fieldName] = grid.GetRowValues(e.VisibleIndex, fieldName); 
    } 
    grid.AddNewRow(); 

} 
protected void grid_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e) { 
    if(copiedValues == null) return; 
    foreach(string fieldName in copiedFields) { 
     e.NewValues[fieldName] = copiedValues[fieldName]; 
    } 
} 
} 

你可以看到完整的演示在这里: http://demos.devexpress.com/ASPxGridViewDemos/Columns/CommandColumnCustomButtons.aspx