Manoj Jagdale Ответов: 1

Значение не отображается в раскрывающемся списке при редактировании строки 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)
           {

           }
       }

1 Ответов

Рейтинг:
0

Hiteshforu2007

Я думаю, что вам нужно будет сначала вызвать событие bind, где выпадающий список Prant получает привязку к данным.
Затем попробуйте установить для него значения.