Значение не отображается в раскрывающемся списке при редактировании строки gridview
Я пытаюсь отредактировать значения gridview в выпадающий список, но некоторые из выпадающих значений не отображаются, которые зависят от других значений выпадающего списка. например, значения prant зависят от состояния, когда мы выбираем состояние как Махараштра, а затем отображаются значения prant состояния Махараштра.
Итак, здесь проблема заключается в том, что когда я редактирую определенную строку gridview, то редактируется только значение состояния, но значение prant не отображается.
произошла следующая ошибка..
'DDLPrant' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value
Что я уже пробовал:
<%@ 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>
// ИЗМЕНИТЬ КОД
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) { } }