Reputation: 61
Here is my gridview:
<asp:GridView ID="gvconsumer" runat="server" AutoGenerateColumns="False" Width="50%" >
<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="lblconsumer" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblname" runat="server" Text='<%# Bind("LastName") %>'></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="lbldatecreaterd" 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="btnApprove_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
here is my code behind: (AcceptButton)
if (btnApprove_Click)
GridViewRow row = ((Button)sender).Parent.Parent as GridViewRow;
string id = ((Label)row.FindControl("lblid")).Text;
Response.Write(row.RowIndex);
string ApprovedStatus = "Approved";
string status = ClassBiller.ConsumerStatus(int.Parse(id), ApprovedStatus, DateTime.Now);
this is my datalayer for ConsumerStatus():
string retUpdateStatus = "";
string consumerStatus = "UPDATE MerchantConsumer SET Status = @Status, DateAccepted = @DateAccepted WHERE ConsumerID = @Consumerid";
string[] param = { "@Consumerid", "@Status", "@DateAccepted" };
object[] paramVal = { ConsumerID, Status, DateAccepted };
try
{
ClassDBQuery.ExecNonQuery(consumerStatus, param, paramVal);
}
catch (Exception ex)
{
throw ex;
}
return retUpdateStatus;
this is how Binded the GridView:
DataTable gridViewConsumer = new DataTable();
gridViewConsumer = ClassConsumer.GetRows();
gvconsumer.DataSource = gridViewConsumer;
gvconsumer.DataBind();
my problem is, i have to double click the button to update the status field of the gridView..but when i check the database(on first click), the Status field is already updated.. Help please....
Upvotes: 0
Views: 1380