【发布时间】:2015-01-25 05:28:41
【问题描述】:
我正在尝试使用CommandName 从我的Gridview 中删除行,但它不起作用。我正在使用 get RowIndex 来执行此操作。
我没有收到任何错误,只是当我点击 ImageButton 时它什么也没做。
这是我的代码:
<asp:GridView ID="GridView1" runat="server" Width="538px" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" onselectedindexchanged="DropDownList5_SelectedIndexChanged" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt" Font-Size="Small" >
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" Height="16px" ImageUrl="~/images/delete.png" Width="16px" CommandName="DeleteRow" />
</ItemTemplate>
<HeaderStyle Width="30px" />
<ItemStyle Height="10px" />
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<RowStyle BackColor="#F7F7DE" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FBFBF2" />
<SortedAscendingHeaderStyle BackColor="#848384" />
<SortedDescendingCellStyle BackColor="#EAEAD3" />
<SortedDescendingHeaderStyle BackColor="#575357" />
</asp:GridView>
这是cs代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (Page.IsPostBack)
{
if (e.CommandName.Equals("DeleteRow"))
{
GridViewRow oItem = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;
int RowIndex = oItem.RowIndex;
GridView1.DeleteRow(RowIndex);
DataBind();
}
}
}
【问题讨论】:
-
不是和你25分钟前问的一样吗?? stackoverflow.com/questions/27156371/delete-row-from-gridview1/…
-
我试图删除那个问题但失败了
-
另外你为什么要检查
IsPostBaack在你的事件中点击链接按钮会导致回发触发..?如果您不确定,那么if(IsPostBack)签入您的Page_Load并查看它是否命中代码.. 还请查看对面的检查if(!IsPostBack(){},了解calling Bind on your object which isgridview1.Bind()` 和DataBind()方法的调用如果您不了解何时以及如何使用,这会让您发疯。谢谢