当编辑gridview行时,值不会显示在下拉列表中 [英] Value doesn't displayed in dropdownlist when edited row of gridview

查看:81
本文介绍了当编辑gridview行时,值不会显示在下拉列表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将gridview值编辑到下拉列表中,但是某些下拉列值不会显示,这取决于下拉列表的其他值。例如prant值取决于状态,因为我们选择状态为maharashtra然后显示maharashtra状态的prant值。

所以这里的问题是当我编辑gridview的特定行时,只编辑状态值但是prant值没有显示。



发生以下错误..



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)
           {

           }
       }

推荐答案

我认为您需要首先调用绑定事件,其中Prant下拉列表绑定到数据。

然后尝试为其设置值。
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.


这篇关于当编辑gridview行时,值不会显示在下拉列表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆