GridView ASP.NET c中的动态按钮#
问题描述:
我在Asp.net中有一个网格视图。我想为特定的行生成按钮。 就像我有一个名为“状态”的列。如果状态是“接受”,则应在该特定行中生成一个按钮。 columnGridView ASP.NET c中的动态按钮#
答
可以在ASP.NET GridView
使用TemplateField
和有条件地设置Button
知名度,像图所示:
<asp:GridView runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Status" HeaderText="Status" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" Text="Accept"
Visible='<%# Eval("Status")=="Accept" %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
希望这会有所帮助。
答
第一添加模板字段按钮这样
<asp:TemplateField HeaderText="status" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="btn" runat="server" CausesValidation="false"
CommandName="Select" Text="button" />
</ItemTemplate>
</asp:TemplateField>
和代码隐藏
protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btn = (Button)e.Row.FindControl("btn");
if (e.Row.Cells[1].Text == "Accept")//replace 1 by your column(status) index in gridview
{
btn.Visible = true;
}
else
{
btn.Visible = false;
}
}
}
,并添加代码来此按钮,以便将其添加在
protected void grid_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
//code
}
这个怎么样的做法? 但它没有按要求工作。 int count = GV_Borrorwer_Details.Rows.Count; 如果(计数> 0){ 如果 (e.Row.RowType!= DataControlRowType.DataRow) { 如果(e.Row.Cells [9]。文本== “接受”) { Button按钮= new Button(); button.Text =“返回”; button.ID + = 1; e.Row.Cells [13] .Controls.Add(button); } } } –
C#背后的任何代码? –
我有点困惑:什么不工作?问候, –