0

我在 asp.net 中使用 gridview 和 UpdatePanel。

<asp:UpdatePanel ID="upSubject" runat="server">
<ContentTemplate>
<div class="c_box" style="height: auto; text-align: center; margin-top: 10px; width:565px; padding-right:140px;">
<asp:GridView ID="gvSubject" runat="server" AutoGenerateColumns="False" 
    SkinID="gvSubject" ShowHeader="true" ShowHeaderWhenEmpty="true" 
    onrowcommand="gvSubject_RowCommand">
<Columns>
<asp:BoundField DataField="lblCounter" HeaderText="Number" ReadOnly="True" HeaderStyle-Font-Bold="false" ItemStyle-Width="60px"></asp:BoundField>
<asp:BoundField DataField="lblSubject" HeaderText="Tiltle" ReadOnly="True" HeaderStyle-Font-Bold="false" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Right"></asp:BoundField>
<asp:TemplateField HeaderText="Delete" ItemStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="false" ItemStyle-Width="60px">
<ItemTemplate>
<asp:ImageButton ID="dltSubject" runat="server" CommandName="remove" CommandArgument="lblCounter" ValidationGroup="Subject" OnClientClick="return confirm('Delete?')" ImageUrl="~/Style/Pic/pic_delete_small.png" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="#000000" />
<EmptyDataRowStyle BackColor="#00ff00" />
<EmptyDataTemplate>
Not item...
</EmptyDataTemplate>
</asp:GridView>
</div>
</ContentTemplate>
<Triggers>
<asp:asyncpostbacktrigger controlid="gvSubject" eventname="RowCommand" /> 
</Triggers>
</asp:UpdatePanel>

或者

<asp:asyncpostbacktrigger controlid="dltSubject" eventname="Click" /> 

.

protected void gvSubject_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "remove")
        {
            DataTable _dt = (DataTable)Session["Subject"];
            _dt.Rows[int.Parse(e.CommandArgument.ToString())].Delete();

            gvSubject.DataSource = _dt;
            gvSubject.DataBind();

            Session["Subject"] = _dt;
        }
    }

但不能工作更新面板。请帮助我在 UpdatePanel 中工作按钮 gridview。

我想在 gridview 和 UpdatePanel 中工作 ImageButton。

4

1 回答 1

0

您不必为 RowCommand 使用触发器。如果您不想使用除此按钮单击之外的其他命令,也请删除 rowcommand。

请指定 OnCommand=dtlSubject_Click

我在这里使用“数字”作为命令参数,认为这是删除记录所需的唯一 ID。

您需要在命令参数中指定要删除的唯一列。

       <asp:ImageButton ID="dltSubject" runat="server"                                                                  
CommandArgument='<%#DataBinder.Eval(Container.DataItem, "Number")%>'
           ValidationGroup="Subject" OnCommand="dtlSubject_Click"
         OnClientClick="return confirm('Delete?')" ImageUrl="~/Style/Pic/pic_delete_small.png" />

在服务器端写下以下代码:

 protected void dtlSubject_Click(object sender, CommandEventArgs e)
{
              string uniqueid= e.CommandArgument.ToString();

            //call your procedure here to delete your item.
}
于 2013-02-05T17:23:25.433 回答