2012-11-09 109 views
0

我使用AJAX Control Toolkit来创建Tabpanels。每个面板都按照以下代码填充gridview。如何在动态创建的Gridview中创建按钮?

现在,我想每行添加一个按钮。当它被点击时,它应该作为该行单元格的参数之一传递,但是由于Gridview是动态创建的,我不知道如何。有小费吗?

foreach (DataTable dt in DataSet1.Tables) 
{ 
    GridView gv = new GridView(); 
    var thepanel = new AjaxControlToolkit.TabPanel(); 
    gv.DataSource = dt; 
    gv.DataBind(); 
    thepanel.Controls.Add(gv); 
    TabContainer.Controls.Add(thepanel); 
} 
+0

试试这个:http://csharp.net-informations.com/datagridview/csharp-datagridview-button.htm – MrFox

回答

0

我只是找到了一个解决方案对他们来说,这可能感兴趣的:

首先,你应该包括fllwg线BEFOREthe数据绑定:

gv.RowDataBound += gv_RowDataBound; 
gv.RowCommand += gv_RowCommand; 

然后定义的RowDataBound插入的LinkBut​​ton:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 

      LinkButton butIgnorar = new LinkButton() 
      { 
       CommandName = "Ignorar", 
       ID = "butIgnorar", 
       Text = "Ignorar", 
       //optional: passes contents of cell 1 as parameter 
       CommandArgument = e.Row.Cells[1].Text.ToString() 
      }; 
      //Optional: to include some javascript cofirmation on the action 
      butIgnorar.Attributes.Add("onClick", "javascript:return confirm('Are you sure you want to ignore?');"); 
      TableCell tc = new TableCell(); 
      tc.Controls.Add(butIgnorar); 
      e.Row.Cells.Add(tc); 
     } 
    } 

最后,从RowCommand

protected void gv_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 

     string currentCommand = e.CommandName; 
     string parameter= e.CommandArgument.ToString(); 

     if (currentCommand.Equals("Ignorar")) 
     { 
      yourMethodName(parameter); 
     } 
    } 

希望调用命令,这是对别人有帮助!

0

您可以添加一个选择按钮,网格如下:

Gridview1.AutoGenerateSelectButton=true;