以编程方式将Grid添加到GridView

时间:2013-03-15 10:20:58

标签: c# asp.net button gridview

我有一个GridView,我正在使用代码在其中添加BoundField。现在我想使用代码添加编辑和删除按钮。我知道如何使用代码向网格添加ButtonField,但我想添加一个按钮,因为ButtonField没有CommandArgument属性。

这是我的GridView标记:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" CellPadding="4"
                BorderWidth="1px" ForeColor="#333333" GridLines="None">
     <AlternatingRowStyle BackColor="White" />
     <FooterStyle BackColor="#990000" ForeColor="White" Font-Bold="True" />
     <HeaderStyle Height="30px" BackColor="#990000" Font-Bold="True" ForeColor="White" />
     <PagerStyle ForeColor="#333333" HorizontalAlign="Center" BackColor="#E2E2E2" />
     <RowStyle CssClass="test" BackColor="#E2E2E2" Height="25px" BorderWidth="1px" ForeColor="#333333" />
     <SelectedRowStyle BackColor="#E2E2E2" Font-Bold="True" ForeColor="Navy" />
     <SortedAscendingCellStyle BackColor="#FDF5AC" />
     <SortedAscendingHeaderStyle BackColor="#4D0000" />
     <SortedDescendingCellStyle BackColor="#FCF6C0" />
     <SortedDescendingHeaderStyle BackColor="#820000" />
</asp:GridView>

这是我的C#代码:

 GridView1.DataKeyNames = new string[] { PrimaryKey };

 if (dtOutPutResult.Rows.Count > 0)
 {
     foreach (DataColumn dcDtOutPutResult in dtOutPutResult.Columns)
     {
         foreach (DataRow drDtColumns in dtColumns.Rows)
         {
             if (drDtColumns["OrignalColumn"].ToString() == dcDtOutPutResult.ColumnName)
             {
                 BoundField bfield = new BoundField();
                 bfield.DataField = dcDtOutPutResult.ColumnName;
                 bfield.HeaderText = drDtColumns["DisplayColumn"].ToString();
                 GridView1.Columns.Add(bfield);
             }
         }
     }

     foreach (DataRow dr in dtOutPutResult.Rows)
     {
         var buttonField = new ButtonField
         {
             ButtonType = ButtonType.Button,
             Text = "My button",
             CommandName = "DoSomething",
         };
         GridView1.Columns.Add(buttonField);
         break;
     }

     GridView1.DataSource = dtOutPutResult;
     GridView1.DataBind();
     lblMessage.Visible = false;
 }
 else
 {
     GridView1.DataSource = dtOutPutResult;
     GridView1.DataBind();
     lblMessage.Visible = true;
     lblMessage.Style.Add("Color", "Red");
     lblMessage.Text = "No Record Found.";
 }

1 个答案:

答案 0 :(得分:1)

听起来您想要添加CommandField

CommandField cField = new CommandField();
cField.EditText = "Edit";
cField.DeleteText = "Delete";
cField.UpdateText = "Update";
cField.CancelText = "Cancel";

cField.ShowEditButton = true;
cField.ShowDeleteButton = true;

GridView1.Columns.Add(cField);

这些按钮会发送你想要的CommandArgument,并且应该触发RowCommand事件(如果你想处理它)。