Hinzufügen einer Schaltfläche zu einer GridView programmatisch

Ich habe eine GridView und ich bin das hinzufügen BoundFields in es, mithilfe von code. Jetzt möchte ich hinzufügen-Schaltflächen zum Bearbeiten und löschen, indem Sie code. Ich weiß, wie ich hinzufügen ButtonField um das Gitter mit code, aber ich wollen, um eine Schaltfläche hinzuzufügen, als ButtonField nicht der CommandArgument-Eigenschaft.

Hier ist mein GridView markup:

<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>

Und hier ist mein C# code:

 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.";
 }
  • gridview-RowDataBound-Methode. msdn.microsoft.com/en-us/library/...
  • ich nicht nutzen möchten, gibt es eine andere Möglichkeit, wie ich im code verwendet
  • können wir tun, außer mit dem raster-events?
  • Wahrscheinlich, aber warum sollte Sie das wollen? Das ist, was der Fall ist. Warum wollen Sie nicht, es zu benutzen, im verwechselt?
  • es gibt keine Logik dahinter.. ich weiß, für welche Ereignisse sind... ich denke, ich muss es tun, indem Fall, so wie ich bin nicht immer eine Idee für Sie.
InformationsquelleAutor Ram Singh | 2013-03-15
Schreibe einen Kommentar