0

ドロップダウンリストがあります。dropdownlist のインデックスを変更すると、asp.net グリッドビューにデータが入力されます。

ユーザーが画面上のグリッドビューの個々の行を削除できる必要があるという要件があります。各行の最後に、削除ボタンを配置する予定です。ボタンをクリックすると、行が消えるはずです。ただし、これは画面上のみである必要があります。データベースに変更を加える必要はありません。

私は今、以下のコードを持っています:

aspx

<table>
        <tr>
            <td>
                <div>
                    <asp:Label ID="lblClient" runat="server" Text="Client :" CssClass="label" ForeColor="Black"></asp:Label>
                    <asp:DropDownList ID="ddlClient" runat="server" AppendDataBoundItems="true" AutoPostBack="true" OnSelectedIndexChanged="ddlClient_SelectedIndexChanged">
                        <asp:ListItem Text="ALL" Value="0"></asp:ListItem>
                    </asp:DropDownList>
                </div>
            </td>
        </tr>
        <tr>
        <td>
        <asp:GridView ID="gvMainLog" runat="server" Visible="true" AllowSorting="True" AutoGenerateColumns="False"AllowPaging="true">
                    <Columns>
                    <asp:BoundField DataField="Instruction" HeaderText="Instruction" />
                    <asp:BoundField DataField="ProviderId" HeaderText="Id" />
                    </Columns>
                    </asp:GridView>
                    <div>
                    <asp:TextBox ID="txtEditMin" runat="server"></asp:TextBox>
                    </div>
        </td>
        </tr>
    </table>

aspx.cs

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
        {
            gvMainLog.DataSource = GetSetupUtility(1);
            gvMainLog.DataBind();

        }
4

2 に答える 2

0

GridView で、このような削除コマンドを追加します

<Columns>
    <asp:BoundField DataField="Instruction" HeaderText="Instruction" />
    <asp:BoundField DataField="ProviderId" HeaderText="Id" />
    <asp:TemplateField ShowHeader="False">
        <ItemTemplate>
            <asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="Remove"
            Text="Remove" CommandArgument='<%# Eval("id") %>' />
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

削除ボタンのアクションでは、DeleteRow メソッドを使用します。

void gvMainLog_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    if(e.CommandName=="Remove")
    {
        var id = Int32.Parse(e.CommandArgument);
        gvMainLog.DeleteRow(id);
    }
}
于 2013-08-22T22:21:40.123 に答える
0

次のようなものが必要です: gridview で TemplateField を使用します。

<script>
function deleteRow(rowId) {
    $("#" + rowId).remove();
}
</script>
<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <div id='<%# "myRow" + Container.DataItemIndex %>'> contents <img src="deleteImageUrl" onclick='<%# "deleteRow(\"myRow" + Container.DataItemIndex+"\")" %>'/> </div>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>
于 2013-08-22T22:24:30.857 に答える