Hinzufügen einer Schaltfläche zu einer GridView programmatisch
Ich habe eine GridView
und ich bin das hinzufügen BoundField
s 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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es klingt wie Sie möchten, fügen Sie ein CommandField.
Diese Schaltflächen senden der CommandArgument wie Sie wollen, und auslösen sollte RowCommand event (wenn Sie damit umgehen wollen, dass).