Answered by:
Edit Record

Question
-
User-1499457942 posted
Hi
I have below code . I want when user clicks on edit Data should be displayed . I have 2 dropdown . I want their existing values should be displayed also with dropdown
It is not going in RowCommand also.
<asp:GridView ID="gvwCategories" OnPreRender="gvwCategories_PreRender" runat="server" CssClass="table table-bordered table-striped" AutoGenerateColumns="false" OnRowCommand="gvwCategories_RowCommand" ClientIDMode="Static" BorderWidth="1px" BorderStyle="None" BorderColor="#DEBA84" HeaderStyle-CssClass="GridHeader" > <HeaderStyle ForeColor="White" Font-Bold="True" BackColor="#428bca"></HeaderStyle> <Columns> <asp:BoundField DataField="EntryNo" HeaderText="EntryNo" InsertVisible="False" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" /> <asp:BoundField HeaderText="Code" DataField="Code" /> <asp:BoundField HeaderText="Description" DataField="Description" /> <asp:BoundField HeaderText="Months" DataField="Months" /> <asp:TemplateField HeaderText="Action"> <ItemTemplate> <asp:linkbutton id="btnEdit" data-toggle="modal" href="#myEditModal" ToolTip="Update Record"
CommandName="EditRecord" CommandArgument='<%#Eval("No") %>' runat="server" CssClass="clslnkbutton"/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header bg-primary"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title " id="myModalLabel">Add New </h4> </div> <div class="modal-body"> <div class="form-horizontal"> <div class="form-group"> <asp:Label ID="lblCode" runat="server" CssClass="col-sm-4 control-label" Text="Code"></asp:Label> <div class="col-sm-4"> <asp:TextBox ID="txtCode" CssClass="form-control" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv1" CssClass="text-danger" runat="server" ErrorMessage="This field is Required !" ControlToValidate="txtCode"></asp:RequiredFieldValidator> </div> </div> <div class="form-group"> <asp:Label ID="lblDescription" runat="server" CssClass="col-sm-4 control-label" Text="Description"></asp:Label> <div class="col-sm-8"> <asp:TextBox ID="txtDescription" CssClass="form-control" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv2" CssClass="text-danger" runat="server" ErrorMessage="This field is Required !" ControlToValidate="txtDescription"></asp:RequiredFieldValidator> </div> </div> <div class="form-group"> <label for="Select" class="col-sm-4 control-label">NMS Months</label> <div class="col-sm-4"> <asp:DropDownList ID="ddlMonths" runat="server" CssClass="btn btn-default btn-sm"> <asp:ListItem Text="1" Value ="1"/> <asp:ListItem Text="2" Value ="2"/> <asp:ListItem Text="3" Value ="3"/> <asp:ListItem Text="4" Value ="4"/> <asp:ListItem Text="5" Value ="5"/> <asp:ListItem Text="6" Value ="6"/> <asp:ListItem Text="7" Value ="7"/> <asp:ListItem Text="8" Value ="8"/> <asp:ListItem Text="9" Value ="9"/> <asp:ListItem Text="10" Value ="10"/> <asp:ListItem Text="11" Value ="11"/> <asp:ListItem Text="12" Value ="12"/> </asp:DropDownList> </div> </div> <div class="form-group"> <div class="col-sm-4"></div> <div class="col-sm-4"> <asp:Button ID="btnInsert" CssClass="btn btn-primary" runat="server" class="btn btn-primary" Text=" Save " OnClick="InsertData" ></asp:Button> </div> </div> </div> </div> </div> </div> </div><div>protected void gvwCategories_RowCommand(object sender, GridViewCommandEventArgs e)</div> <div> {</div> <div> if (e.CommandName == "EditRecord")</div> <div> {</div> <div> LinkButton btndetails = (LinkButton)e.CommandSource;</div> <div> GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer;</div> <div> </div> <div> using (GridViewRow row = (GridViewRow)((LinkButton)sender).Parent.Parent)</div> <div> {</div> <div> txtDescription.Text = row.Cells[2].Text;</div> <div> }</div> <div></div> <div> }</div> <div> }</div>
Thanks
Tuesday, August 14, 2018 12:11 PM
Answers
-
User-893317190 posted
Hi JagjitSingh,
The problem is caused by validation controls in your modal.
Because validation controls will validate your data every time the page posts back , if your data is invalid, it will prevent the postback.
If you want to post back with the data invalid , you need to set validationgroup property of your validation control and the insert button to the same value so that only the button’s post back will be validated.
Furthermore, I advise you to use button instead of linkbutton in your gridview because linkbutton will not trigger gridview’s command event. To make your modal show after rowcommand event , you could register script at code behind.
Below is my code.
<form id="form1" runat="server"> <asp:GridView ID="gvwCategories" runat="server" CssClass="table table-bordered table-striped" AutoGenerateColumns="false" OnRowCommand="gvwCategories_RowCommand" ClientIDMode="Static" BorderWidth="1px" BorderStyle="None" BorderColor="#DEBA84" HeaderStyle-CssClass="GridHeader" > <HeaderStyle ForeColor="White" Font-Bold="True" BackColor="#428bca"></HeaderStyle> <Columns> <asp:BoundField DataField="EntryNo" HeaderText="EntryNo" InsertVisible="False" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" /> <asp:BoundField HeaderText="Code" DataField="Code" /> <asp:BoundField HeaderText="Description" DataField="Description" /> <asp:BoundField HeaderText="Months" DataField="Months" /> <asp:TemplateField HeaderText="Action"> <ItemTemplate> <asp:Button id="btnEdit" ToolTip="Update Record" CommandName="EditRecord" runat="server" CssClass="btn btn-default" Text="edit" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <div class="modal fade" id="myEditModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header bg-primary"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title " id="myModalLabel">Add New </h4> </div> <div class="modal-body"> <div class="form-horizontal"> <div class="form-group"> <asp:Label ID="lblCode" runat="server" CssClass="col-sm-4 control-label" Text="Code"></asp:Label> <div class="col-sm-6"> <asp:TextBox ID="txtCode" CssClass="form-control" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv1" CssClass="text-danger" runat="server" ErrorMessage="This field is Required !" ControlToValidate="txtCode" ValidationGroup="edit"> </asp:RequiredFieldValidator> </div> </div> <div class="form-group"> <asp:Label ID="lblDescription" runat="server" CssClass="col-sm-4 control-label" Text="Description"></asp:Label> <div class="col-sm-8"> <asp:TextBox ID="txtDescription" CssClass="form-control" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv2" CssClass="text-danger" runat="server" ErrorMessage="This field is Required !" ControlToValidate="txtDescription" ValidationGroup="edit"></asp:RequiredFieldValidator> </div> </div> <div class="form-group"> <label for="Select" class="col-sm-4 control-label">NMS Months</label> <div class="col-sm-4"> <asp:DropDownList ID="ddlMonths" runat="server" CssClass="btn btn-default btn-sm"> <asp:ListItem Text="1" Value ="1"/> <asp:ListItem Text="2" Value ="2"/> <asp:ListItem Text="3" Value ="3"/> <asp:ListItem Text="4" Value ="4"/> <asp:ListItem Text="5" Value ="5"/> <asp:ListItem Text="6" Value ="6"/> <asp:ListItem Text="7" Value ="7"/> <asp:ListItem Text="8" Value ="8"/> <asp:ListItem Text="9" Value ="9"/> <asp:ListItem Text="10" Value ="10"/> <asp:ListItem Text="11" Value ="11"/> <asp:ListItem Text="12" Value ="12"/> </asp:DropDownList> </div> </div> <div class="form-group"> <div class="col-sm-4"></div> <div class="col-sm-4"> <asp:Button ID="btnInsert" CssClass="btn btn-primary" runat="server" class="btn btn-primary" Text=" Save " ValidationGroup="eidt"></asp:Button> </div> </div> </div> </div> </div> </div> </div>
Code behind.
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //simulate data from the database List<Entry> list = new List<Entry>(); list.Add(new Entry { EntryNo = 1, Code = "code1", Description = "description1", Months = 1 }); list.Add(new Entry { EntryNo = 2, Code = "code2", Description = "description2", Months = 2 }); list.Add(new Entry { EntryNo = 3, Code = "code3", Description = "description3", Months = 3 }); list.Add(new Entry { EntryNo = 4, Code = "code4", Description = "description4", Months = 4 }); list.Add(new Entry { EntryNo = 5, Code = "code5", Description = "description1", Months = 5 }); gvwCategories.DataSource = list; gvwCategories.DataBind(); } } protected void gvwCategories_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "EditRecord") { Button btndetails = (Button)e.CommandSource; GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer; using (GridViewRow row = (GridViewRow)(btndetails).Parent.Parent) { txtDescription.Text = row.Cells[2].Text; ddlMonths.SelectedValue = row.Cells[3].Text; txtCode.Text = row.Cells[1].Text;
//register script to make the modal show ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "$('#myEditModal').modal('show')", true); } } } } public class Entry { public int EntryNo { get; set; } public string Code { get; set; } public string Description { get; set; } public int Months { get; set; } }Below is the result when I click the fourth button of the gridview.
Best regards ,
Ackerly Xu
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Wednesday, August 15, 2018 7:58 AM