Click here to Skip to main content
15,891,529 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I am trying to edit gridview values into dropdown, but some of dropdown values are not displyed, which are depend on another values of dropdown. e.g. prant values are depends on state as we select state as maharashtra then prant values of maharashtra state are displayed.
So here problem is that when i edit specific row of gridview then only state value is edited but prant value is not displyed.

following error is occurred..

'DDLPrant' has a SelectedValue which is invalid because it does not exist in the list of items.

Parameter name: value


What I have tried:

<%@ Page Title="" Language="C#" MasterPageFile="~/Master.Master" AutoEventWireup="true" CodeBehind="Frm_DistrictMaster.aspx.cs" Inherits="Bharati.Frm_DistrictMaster" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <link href="Styles/Site.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">

        function Validate() {
            if (document.getElementById('<%=ddlState.ClientID %>').selectedIndex == 0) {
                alert("select the State.");
                document.getElementById('<%=ddlState.ClientID %>').focus();
                  return false;
            }

            if (document.getElementById('<%=DDLPrant.ClientID %>').selectedIndex == 0) {
                alert("select the Prant.");
                document.getElementById('<%=DDLPrant.ClientID %>').focus();
                return false;
            }

            if (document.getElementById('<%=txtDistrict.ClientID %>').value == "") {
               alert("Plesae Enter District.");
               document.getElementById('<%=txtDistrict.ClientID %>').focus();
                return false;
            }
        }

        function isAlphabetKey(evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode
          //  if ((charCode == 32 && charCode==48) || (charCode<=47 && charCode>=57) || (charCode <= 93 && charCode >= 65) || (charCode <= 122 && charCode >= 97)) {
              if ((charCode == 32) || (charCode <= 93 && charCode >= 65) || (charCode <= 122 && charCode >= 97)) {
                return true;
            }
            //alert("only character accepted");
            return false;
        }
     </script>

     <table style="width: 100%">
                    <tr>
                        <td colspan="2"> 
                        </td>
                    </tr>
                  
                    <tr class="hr">
                        <td colspan="2"> 
                        </td>
                    </tr>
                    <tr id="tradd" runat="server">
                        <td colspan="2">
                            <table style="width: 100%">
                                <tr>
                                    <td style="width: 14%" align="left"> </td>
                                    <td style="width: 20%" align="left"> </td>
                                    <td style="width: 14%" align="left"></td>
                                    <td style="width: 20%" align="left"></td>
                                    <td align="left"></td>
                                    <td style="width: 21%" align="left"></td>
                                    <td align="left"></td>
                                </tr>
                                <tr>
                                    <td align="Center" style="width: 14%"><asp:Label ID="lblStateNo" runat="server" CssClass="new-label" Text="State :"></asp:Label></td>
                                    <td align="Center"><asp:DropDownList ID="ddlState" CssClass="form-control" Width="100%" runat="server" AutoPostBack="true" DataTextField="Statename" DataValueField="State_ID" OnSelectedIndexChanged="ddlState_SelectedIndexChanged1"></asp:DropDownList></td>
                                    <td align="Center" style="width: 14%"><asp:Label ID="lblPrantNo" runat="server" CssClass="new-label" Text="Prant :"></asp:Label></td>
                                    <td><asp:HiddenField ID="HFPrant_id" runat="server" />
                                        <asp:DropDownList ID="DDLPrant" CssClass="form-control" Width="100%" runat="server" DataTextField="Prantname" DataValueField="Prant_ID"></asp:DropDownList></td>
                                    <td align="Center"><asp:Label ID="lblLevel" runat="server" CssClass="new-label" Text="District :"></asp:Label></td>
                                    <td style="width: 21%"><asp:TextBox ID="txtDistrict" runat="server" CssClass="form-control" placeholder="District" onkeypress="return isAlphabetKey(event)"  width="100%" ToolTip="District"></asp:TextBox>
                                        <%--<asp:TextBox ID="txtPrant" runat="server" CssClass="form-control" placeholder="Prant" onkeypress="return isAlphabetKey(event)" ToolTip="Prant" Width="157px"></asp:TextBox>--%>
                                        <asp:HiddenField ID="HFDistrict_id" runat="server" />
                                        <asp:Label ID="lblvDistrict_id" runat="server" Text='<%#Eval("District_id") %>' Visible="false"></asp:Label>
                                    </td>                                    
                                </tr>
                                <tr>
                                    <td style="width: 14%"> </td>
                                    <td> </td>
                                    <td style="width: 14%"></td>
                                    <td></td>
                                    <td align="center"><asp:Button ID="BtnAdd" runat="server" CssClass="btn-primary" Text="Submit" OnClick="BtnAdd_Click" />
                                        <br />
                                    <asp:Button ID="btnUpdate" runat="server" CssClass="btn-primary" Text="Update" OnClick="btnUpdate_Click"  Visible="false"/> </td>
                                </tr>                                                                                               
                            </table>                             
                        </td>                         
                    </tr>                
                </table>
               
                <div align="center" id="divreportviewer" runat="server">
                    <table width="100%">
                        <tr class="hr">
                            <td colspan="4">
                           <asp:Label ID="lblmsg" runat="server" Text=""></asp:Label>
                            </td>
                            <td>
                                
                            </td>
                        </tr>

                        <tr>
                        <td align="center">
                        <asp:GridView ID="GvDistrict" runat="server" AutoGenerateColumns="False" ShowHeaderWhenEmpty="True" CssClass="grid" AllowPaging="True" 
                            PageSize="10" OnPageIndexChanging="OnPageIndexChanging" DataKeyNames="District_id" EmptyDataText="No Records Found" GridLines="both" 
                            EmptyDataRowStyle-ForeColor="Red" OnPageIndexChanged="GvDistrict_PageIndexChanged">

                        <Columns>

                            <asp:TemplateField HeaderText="State Name">
                                <ItemTemplate>
                                      <asp:Label ID="lblvStatename" runat="server" Text='<%#Eval("Statename") %>'></asp:Label>
                                      <asp:Label ID="lblvStateId" runat="server" Visible="false" Text='<%#Eval("State_ID") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                              
                            <asp:TemplateField HeaderText="Prant Name">
                                <ItemTemplate>
                                      <asp:Label ID="lblvPrantname" runat="server" Text='<%#Eval("Prantname") %>'></asp:Label>
                                      <asp:Label ID="lblvPrantId" runat="server" Visible="false" Text='<%#Eval("Prant_ID") %>'></asp:Label>
                                </ItemTemplate>

                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="District Name">
                                <ItemTemplate>
                                    <asp:Label ID="lblvDistictname" runat="server" Text='<%#Eval("District_name") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="Action">
                                <ItemTemplate>                                   
                                     <asp:ImageButton ID="ImgEdit" runat="server" ImageUrl="~/Images/btn-edit.png" OnClick="ImgEdit_Click"  height="20px" width="20px" ToolTip="Edit Data"/>                                  
                                     <asp:ImageButton ID="ImgDelete" runat="server" ImageUrl="~/Images/btn-delete.jpg" OnClientClick="return confirm('Are you sure? want to delete the department.');" OnClick="ImgDelete_Click"  height="20px" width="22px" ToolTip="Delete Data"/>                                   
                                     <asp:Button ID="btnDelete" runat="server" Text="Delete"  Visible="false"/>                                       
                                     <asp:Label ID="lblvDistrictid" runat="server" Text='<%#Eval("District_id") %>' Visible="false"></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView><%--   </asp:Panel>--%>
                            </td>
                        </tr>                                               
                    </table>
                </div>
</asp:Content>


// EDIT CODE
protected void ImgEdit_Click(object sender, ImageClickEventArgs e)
       {
           try
           {
               ImageButton imgbtn = sender as ImageButton;
               GridViewRow grow = imgbtn.NamingContainer as GridViewRow;
               HFDistrict_id.Value = (grow.FindControl("lblvDistrictid") as Label).Text;
               txtDistrict.Text = (grow.FindControl("lblvDistictname") as Label).Text;
               ddlState.SelectedValue = Convert.ToString((grow.FindControl("lblvStateId") as Label).Text);
               HFPrant_id.Value = (grow.FindControl("lblvPrantId") as Label).Text;
               //DDLPrant.SelectedValue = Convert.ToString( HFPrant_id.Value); //Convert.ToString((grow.FindControl("lblvPrantname") as Label).Text);
               DDLPrant.SelectedValue = Convert.ToString((grow.FindControl("lblvPrantId") as Label).Text);

               BtnAdd.Visible = false;
               btnUpdate.Visible = true;
           }
           catch (Exception)
           {

           }
       }
Posted
Updated 15-May-18 2:14am
v2

1 solution

I think you will need to first call the bind event where the Prant dropdown gets bind to data.
Then try and set values to it.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900