2

我有一个GridView,我正在BoundField使用代码在其中添加 s。现在我想使用代码添加用于编辑和删除的按钮。我知道如何ButtonField使用代码将 a 添加到网格中,但我想添加一个按钮,因为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.";
 }
4

1 回答 1

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 事件(如果您想处理它)。

于 2013-03-15T14:37:11.670 回答