0

私はグリッドビューを持っています:

<asp:GridView ID="gvtransaction" runat="server" AutoGenerateColumns="False" Width="60%" OnRowDataBound="gvtransaction_RowDataBound" >
            <Columns>
                <asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:Label ID="lblid" runat="server" Text='<%# Bind("id") %>' Visible="false"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Consumer">
                    <ItemTemplate>
                        <asp:Label ID="lblfirstname" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Name">
                    <ItemTemplate>
                        <asp:Label ID="lbllastname" runat="server" Text='<%# Bind("LastName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Amount">
                    <ItemTemplate>
                        <asp:Label ID="lblamount" runat="server" Text='<%# Bind("Amount") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:Label ID="lblcurrencyID" runat="server" Text='<%# Bind("CurrencyID") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Account Name">
                    <ItemTemplate>
                        <asp:Label ID="lblcurrencyname" runat="server" Text='<%# Bind("CurrencyName") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Status">
                    <ItemTemplate>
                        <asp:Label ID="lblstatus" runat="server" Text='<%# Bind("Status") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="DateCreated">
                    <ItemTemplate>
                        <asp:Label ID="lbldatecreated" runat="server" Text='<%# Bind("DateCreated") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:Button ID="btnApprove" runat="server" Text="Approve" OnClick="btnApprove_Click"/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:Button ID="btnReject" runat="server" Text="Reject" OnClick="btnReject_Click" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

onclick = "btnApprove_click() のコードは次のとおりです。

 GridViewRow row = ((Button)sender).Parent.Parent as GridViewRow;

    string id = ((Label)row.FindControl("lblid")).Text;
    Response.Write(row.RowIndex);
    string ApprovedStatus = "Approved";

    Button btnApprove = (Button)sender;
    btnApprove.Enabled = false;

    string status = ClassBiller.ConsumerAcceptedStatus(int.Parse(id), ApprovedStatus, DateTime.Now);
    ViewPendingConsumer(); //rebind gridview para magEffect yun update

私の懸念は、承認ボタンまたは拒否ボタンのいずれかをクリックしたときに、グリッドビュー内のボタンを無効にするにはどうすればよいかということです。

サンプル シナリオ: [承認] をクリックすると、ユーザーがボタンを再度クリックできないように、ボタンを無効にする必要があります。

gridview の onrowdatabound の使用を提案するいくつかの記事を読みました..しかし、私はそれを行う方法について混乱しています...

使ってみた

row.Enabled = false;

まだ動作しません...

助けてください..ありがとう

4

3 に答える 3

0

Cells[5] はボタンがあるセルで、同じ問題があり、私にとってはうまくいきました。

protected void gvtransaction_RowDataBound(オブジェクト送信者、GridViewRowEventArgs e) {

    if (e.Row.RowType == DataControlRowType.DataRow)
    {

       e.Row.Cells[5].Enabled = false;
    }

}
于 2013-11-05T15:12:03.953 に答える