下拉动态 [英] drop down for dynamic

查看:67
本文介绍了下拉动态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对我的每种表格都有类似的要求.

我有一个类似的层次结构.

总部
,区域办公室
,区域办事处
,地区办事处
,单位办公室
和分支机构

选择总公司后,必须绑定区域,在选择Zonal时,要绑定的区域办公室要与所有层次结构相同.但是在某些情况下,区域和单位将不存在.

因此必须在区域分支机构之后直接来.

为此,我在网格视图控件中放置了下拉菜单,它对于动态下拉菜单集工作得很好,但是我有明确的要求.

在每个分支下,将注册会员.在一些要求客户是否输入会员ID的客户中,层次结构必须从下至上进行绑定,以便绑定所输入的会员ID.

我该如何解决这两个问题.

 <   asp:GridView     ID   ="   ="span>    runat   =" 服务器"  AutoGenerateColumns    false"  Width   ="  
 
                     span>                                                                                                      CellPadding   ="   OnRowDataBound    HirearchyGv_RowDataBound"  OnPreRender    HirearchyGv_PreRender" > 
                                                                    <   > 
                                                                        <   asp:BoundField    数据字段  ="  / <   asp:BoundField     DataField   ="   ItemStyle-Width    185px" / > 
                                                                        <   asp:TemplateField     ItemStyle-Horizo​​ntalAlign   ="  > 
                                                                            <   ItemTemplate  > 
                                                                                <   asp:DropDownList     ID   ="   runat   服务器"  TabIndex    2"  AutoPostBack     OnSelectedIndexChanged   ="  
 
                     span>                                                                                                                                      ="   mandatory-comobox170" <  /asp:DropDownList  > 
                                                                            <  /ItemTemplate  > 
                                                                            <   ItemStyle     ="  左侧" <   > 
                                                                        <  /asp:TemplateField  > 
                                                                        <   asp:BoundField     DataField   ="  / <   asp:BoundField    数据字段  ="  / <  /列 > 
                                                                <  /asp:GridView  >  



 公共  void  ddl1_SelectedIndexChanged(对象发​​件人,EventArgs e)
      {
          //  int count = DataList1.Items.Count; 
          尝试
          {
               int  count = HirearchyGv.Rows.Count;
               int  rowindex = -1;

              GridViewRow gr =(GridViewRow)(((DataControlFieldCell)((DropDownList)sender).Parent).Parent;
              DropDownList d1 =(DropDownList)gr.FindControl(" );

              rowindex = gr.RowIndex;
               for ( int  i = rowindex; i ><  count- 1 ; i ++)
              {
                  DropDownList d2 =(DropDownList)HirearchyGv.Rows [i +  1 ].FindControl("  ddl1");
                  // (DropDownList)gr.FindControl("ddl1"); 
                  字符串 str1 = HirearchyGv.Rows [rowindex +  1 ].Cells [;
                  d2.DataBind();
                  d2.Items.Insert( 0 " );
                  d2.BackColor = System.Drawing.Color.White;
                  ClearMemberFields();
                  MemberIdTxt.Text = " ;

                  MemberNameCmbox.Items.Clear();
                  MemberNameCmbox.Items.Insert( 0 " );
                  MemberNameCmbox.SelectedIndex =  0 ;

              }
              如果(计数- 1  ">>  rowindex )
              {
                  DataTable dt =  DataTable();
                  字符串 str1 = HirearchyGv.Rows [rowindex +  1 ].Cells [字符串 str2 = d1.SelectedValue;
                  //  if(Convert.ToInt32(HirearchyGv.Rows [rowindex +1] .Cells [3] .Text.ToString( ))== 7)
                  如果(Convert.ToInt32(HirearchyGv.Rows [rowindex] .Cells [ 3 ].Text.ToString( ))==  7 )
                  {
                      如果(Convert.ToInt32(HirearchyGv.Rows [rowindex] .Cells [ 0 ].Text.ToString( ))==  10 )
                      {
                          // 绑定村庄
                          ViewState [" ] = str2;
                          dt = BLGlobalHierachy.GetAfterMembermaping(str1,ViewState [" ].ToString(),ViewState [" ].ToString(),HirearchyGv.Rows [rowindex] .Cells [ 1 ].FindControl("  ddl1");
                          // (DropDownList)gr.FindControl("ddl1"); 
                          d2.DataSource = dt;
                          d2.DataTextField = " ;
                          d2.DataValueField = " ;
                          d2.DataBind();
                          d2.Items.Insert( 0 " );
                          d2.BackColor = System.Drawing.Color.FromArgb( 191  246 其他
                      {
                          // 绑定中心
                          ViewState [" ] = str2;
                          dt = BLGlobalHierachy.GetAfterMembermaping(str1,ViewState [" ].ToString(),str2,HirearchyGv .Rows [rowindex] .Cells [ 0 ].Text.ToString(),LoantypesDdl.SelectedValue);
                          DropDownList d2 =(DropDownList)HirearchyGv.Rows [rowindex +  1 ].FindControl("  ddl1");
                          // (DropDownList)gr.FindControl("ddl1"); 
                          d2.DataSource = dt;
                          d2.DataTextField = " ;
                          d2.DataValueField = " ;
                          d2.DataBind();
                          d2.Items.Insert( 0 " );
                          d2.BackColor = System.Drawing.Color.FromArgb( 191  246 // 绑定乡村成员


                      }
                  }
                  其他 如果(Convert.ToInt32(HirearchyGv.Rows [rowindex] .Cells [ 8 )
                  {
                      // 绑定组
                      ViewState [" ] = str2;
                      dt = BLGlobalHierachy.GetAfterMembermaping(str1,ViewState [" ].ToString(),str2,HirearchyGv .Rows [rowindex] .Cells [ 0 ].Text.ToString(),LoantypesDdl.SelectedValue);
                      DropDownList d2 =(DropDownList)HirearchyGv.Rows [rowindex +  1 ].FindControl("  ddl1");

                      d2.DataSource = dt;
                      d2.DataTextField = " ;
                      d2.DataValueField = " ;
                      d2.DataBind();
                      d2.Items.Insert( 0 " );
                      d2.BackColor = System.Drawing.Color.FromArgb( 191  246 // 绑定中心成员

                      如果(LoantypesDdl.SelectedValue == "  || LoantypesDdl.SelectedValue == " )
                      {

                          字符串 ParentID = ViewState ["  ] .ToString().Trim();
                           int  LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          字符串 CroName = ViewState ["  ] .ToString().Trim();
                          DataTable dt1 =  DataTable();
                          dt1 = BLGlobalHierachy.GetCenterMemers(ParentID,LoanTypeId,CroName);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = " ;
                          MemberNameCmbox.DataValueField = " ;
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert( 0 " );
                      }


                  }
                  其他 如果(Convert.ToInt32(HirearchyGv.Rows [rowindex] .Cells [ 6 )
                  {
                      // 绑定CRO 
                      MemberNameCmbox.Items.Clear();
                      ViewState [" ] = str2;
                      BranchCodeTxt.Text = str2;
                      dt = BLGlobalHierachy.GetCROInHierarchy(str1,str2);
                      DropDownList d2 =(DropDownList)HirearchyGv.Rows [rowindex +  1 ].FindControl("  ddl1");
                      // (DropDownList)gr.FindControl("ddl1"); 
                      d2.DataSource = dt;
                      d2.DataTextField = " ;
                      d2.DataValueField = " ;
                      d2.DataBind();
                      d2.Items.Insert( 0 " );
                      d2.BackColor = System.Drawing.Color.FromArgb( 191  246 其他
                  {
                      如果(ViewState [" ] == 为空)
                      {
                          ViewState [" ] = " ";
                      }
                      // 将层次结构绑定到分支
                      dt = BLGlobalHierachy.GetAfterMembermaping(str1,ViewState [" ].ToString(),str2,HirearchyGv .Rows [rowindex] .Cells [ 0 ].Text.ToString(),LoantypesDdl.SelectedValue);
                      DropDownList d2 =(DropDownList)HirearchyGv.Rows [rowindex +  1 ].FindControl("  ddl1");
                      // (DropDownList)gr.FindControl("ddl1"); 
                      d2.DataSource = dt;
                      d2.DataTextField = " ;
                      d2.DataValueField = " ;
                      d2.DataBind();
                      d2.Items.Insert( 0 " );
                      d2.BackColor = System.Drawing.Color.FromArgb( 191  246 其他
              {
                  如果(Convert.ToInt32(HirearchyGv.Rows [rowindex] .Cells [ 3 ].Text.ToString( ))==  9 )
                  {
                      // 绑定组成员

                      如果(LoantypesDdl.SelectedValue == "  span> || LoantypesDdl.SelectedValue == " )
                      {
                          字符串 ParentID = ViewState ["  ] .ToString().Trim();
                          字符串 CurrentID = d1.SelectedValue;
                          ViewState [" ] = CurrentID.ToString().Trim();
                           int  LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          字符串 CroName = ViewState ["  ] .ToString().Trim();
                          DataTable dt1 =  DataTable();
                          dt1 = BLGlobalHierachy.GetGroupMemersDis(ParentID,CurrentID,LoanTypeId,CroName);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = " ;
                          MemberNameCmbox.DataValueField = " ;
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert( 0 " );
                          LoadAllGroupLoans();
                      }
                      如果(LoantypesDdl.SelectedValue == " )
                      {
                          字符串 ParentID = ViewState ["  ] .ToString().Trim();
                          字符串 CurrentID = d1.SelectedValue;
                          ViewState [" ] = CurrentID.ToString().Trim();
                           int  LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          字符串 CroName = ViewState ["  ] .ToString().Trim();
                          DataTable dt1 =  DataTable();
                          dt1 = BLGlobalHierachy.GetGroupMemersDis(ParentID,CurrentID,LoanTypeId,CroName);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = " ;
                          MemberNameCmbox.DataValueField = " ;
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert( 0 " );
                          LoadAllGroupLoans();
                      }


                  }
                  如果(Convert.ToInt32(HirearchyGv.Rows [rowindex] .Cells [ 3 ].Text.ToString( ))==  7 )
                  {
                      如果(LoantypesDdl.SelectedValue == " 跨度>)
                      {
                          字符串 ParentID = ViewState ["  ] .ToString().Trim();
                          字符串 CurrentID = d1.SelectedValue;
                          ViewState [" ] = CurrentID.ToString().Trim();
                          字符串 CroName = ViewState ["  ] .ToString().Trim();
                           int  LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          DataTable dt1 =  DataTable();
                          dt1 = BLGlobalHierachy.GetVillagememersDis(ParentID,CurrentID,CroName,LoanTypeId);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = " ;
                          MemberNameCmbox.DataValueField = " ;
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert( 0 " );
                          LoadAllGroupLoans();
                      }

                  }
              }

          }
          捕获(例外)
          {
              log.Error(ex.Message,ex);
          }


      }

解决方案

首先,在区域绑定区域,单位和分支一次之后,如果没有数据,则仅显示select

其次,基于成员ID提取分支,然后基于分支ID提取该区域后的单位(如果单位或区域中没有项目),则提取区域并根据该成员ID来将所选值设置为数据库中的已保存值,等等.

I have a requirement like in my application for each and every form.

I have a hierarchy like.

Head office
,Zonal office
,Regional office
,Area Office
,Unit Office
and Branch Office

After selection of head office zonal has to bind, on selection of Zonal, regional office as to bind and same for all hierarchy. But in some case area and unit will not present.

So directly after regional branch office has to come.

For this I did with drop down placing in grid view control, it working fine for dynamic set of drop downs but I have an explicit requirement.

Under each branch, Members will be registered. In some from customer asking for if he enters member id the hierarchy has to bind i.e from bottom to top it as to bind on member id entered .

How can I do this any way for my both problems.

<asp:GridView ID="HirearchyGv" runat="server" AutoGenerateColumns="false" Width="100%"

                                                                    CellPadding="3" OnRowDataBound="HirearchyGv_RowDataBound" OnPreRender="HirearchyGv_PreRender">
                                                                    <Columns>
                                                                        <asp:BoundField DataField="HIERARCHY_ID" />
                                                                        <asp:BoundField DataField="HIERARCHY_NAME" ItemStyle-Width="185px" />
                                                                        <asp:TemplateField ItemStyle-HorizontalAlign="Left">
                                                                            <ItemTemplate>
                                                                                <asp:DropDownList ID="ddl1" runat="server" TabIndex="2" AutoPostBack="True" OnSelectedIndexChanged="ddl1_SelectedIndexChanged"

                                                                                    CssClass="mandatory-comobox170">
                                                                                </asp:DropDownList>
                                                                            </ItemTemplate>
                                                                            <ItemStyle HorizontalAlign="Left"></ItemStyle>
                                                                        </asp:TemplateField>
                                                                        <asp:BoundField DataField="HIERARCHY_ORDER" />
                                                                        <asp:BoundField DataField="DB_TABLE_NAME" />
                                                                    </Columns>
                                                                </asp:GridView>



public void ddl1_SelectedIndexChanged(object sender, EventArgs e)
      {
          // int count = DataList1.Items.Count;
          try
          {
              int count = HirearchyGv.Rows.Count;
              int rowindex = -1;

              GridViewRow gr = (GridViewRow)((DataControlFieldCell)((DropDownList)sender).Parent).Parent;
              DropDownList d1 = (DropDownList)gr.FindControl("ddl1");

              rowindex = gr.RowIndex;
              for (int i = rowindex; i < count - 1; i++)
              {
                  DropDownList d2 = (DropDownList)HirearchyGv.Rows[i + 1].FindControl("ddl1");
                  //(DropDownList)gr.FindControl("ddl1");
                  string str1 = HirearchyGv.Rows[rowindex + 1].Cells[4].Text.ToString().Trim();
                  d2.Items.Clear();
                  d2.DataSource = null;
                  d2.DataBind();
                  d2.Items.Insert(0, "--Select--");
                  d2.BackColor = System.Drawing.Color.White;
                  ClearMemberFields();
                  MemberIdTxt.Text = "";

                  MemberNameCmbox.Items.Clear();
                  MemberNameCmbox.Items.Insert(0, "--Select--");
                  MemberNameCmbox.SelectedIndex = 0;

              }
              if (count - 1 > rowindex)
              {
                  DataTable dt = new DataTable();
                  string str1 = HirearchyGv.Rows[rowindex + 1].Cells[4].Text.ToString().Trim();
                  string str2 = d1.SelectedValue;
                  //if (Convert.ToInt32(HirearchyGv.Rows[rowindex +1 ].Cells[3].Text.ToString()) == 7)
                  if (Convert.ToInt32(HirearchyGv.Rows[rowindex].Cells[3].Text.ToString()) == 7)
                  {
                      if (Convert.ToInt32(HirearchyGv.Rows[rowindex].Cells[0].Text.ToString()) == 10)
                      {
                          // Binding Villages
                          ViewState["CRO"] = str2;
                          dt = BLGlobalHierachy.GetAfterMembermaping(str1, ViewState["CRO"].ToString(), ViewState["BranchCode"].ToString(), HirearchyGv.Rows[rowindex].Cells[0].Text.ToString(), LoantypesDdl.SelectedValue);
                          DropDownList d2 = (DropDownList)HirearchyGv.Rows[rowindex + 1].FindControl("ddl1");
                          //(DropDownList)gr.FindControl("ddl1");
                          d2.DataSource = dt;
                          d2.DataTextField = "CURRENT_NAME";
                          d2.DataValueField = "CURRENT_ID";
                          d2.DataBind();
                          d2.Items.Insert(0, "--Select--");
                          d2.BackColor = System.Drawing.Color.FromArgb(191, 246, 181);

                      }
                      else
                      {
                          //Bindings Centers
                          ViewState["VillageCode"] = str2;
                          dt = BLGlobalHierachy.GetAfterMembermaping(str1, ViewState["CRO"].ToString(), str2, HirearchyGv.Rows[rowindex].Cells[0].Text.ToString(), LoantypesDdl.SelectedValue);
                          DropDownList d2 = (DropDownList)HirearchyGv.Rows[rowindex + 1].FindControl("ddl1");
                          //(DropDownList)gr.FindControl("ddl1");
                          d2.DataSource = dt;
                          d2.DataTextField = "CURRENT_NAME";
                          d2.DataValueField = "CURRENT_ID";
                          d2.DataBind();
                          d2.Items.Insert(0, "--Select--");
                          d2.BackColor = System.Drawing.Color.FromArgb(191, 246, 181);

                          //Bind Village Members


                      }
                  }
                  else if (Convert.ToInt32(HirearchyGv.Rows[rowindex].Cells[3].Text.ToString()) == 8)
                  {
                      //Binding Groups
                      ViewState["CenterCode"] = str2;
                      dt = BLGlobalHierachy.GetAfterMembermaping(str1, ViewState["CRO"].ToString(), str2, HirearchyGv.Rows[rowindex].Cells[0].Text.ToString(), LoantypesDdl.SelectedValue);
                      DropDownList d2 = (DropDownList)HirearchyGv.Rows[rowindex + 1].FindControl("ddl1");

                      d2.DataSource = dt;
                      d2.DataTextField = "CURRENT_NAME";
                      d2.DataValueField = "CURRENT_ID";
                      d2.DataBind();
                      d2.Items.Insert(0, "--Select--");
                      d2.BackColor = System.Drawing.Color.FromArgb(191, 246, 181);

                      //Bind Center Members

                      if (LoantypesDdl.SelectedValue == "2" || LoantypesDdl.SelectedValue == "1")
                      {

                          string ParentID = ViewState["CenterCode"].ToString().Trim();
                          int LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          string CroName = ViewState["CRO"].ToString().Trim();
                          DataTable dt1 = new DataTable();
                          dt1 = BLGlobalHierachy.GetCenterMemers(ParentID, LoanTypeId, CroName);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = "MEMBER_NAME";
                          MemberNameCmbox.DataValueField = "MEMBER_ID";
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert(0, "--select--");
                      }


                  }
                  else if (Convert.ToInt32(HirearchyGv.Rows[rowindex].Cells[3].Text.ToString()) == 6)
                  {
                      //Binding CRO
                      MemberNameCmbox.Items.Clear();
                      ViewState["BranchCode"] = str2;
                      BranchCodeTxt.Text = str2;
                      dt = BLGlobalHierachy.GetCROInHierarchy(str1, str2);
                      DropDownList d2 = (DropDownList)HirearchyGv.Rows[rowindex + 1].FindControl("ddl1");
                      //(DropDownList)gr.FindControl("ddl1");
                      d2.DataSource = dt;
                      d2.DataTextField = "CURRENT_NAME";
                      d2.DataValueField = "CURRENT_ID";
                      d2.DataBind();
                      d2.Items.Insert(0, "--Select--");
                      d2.BackColor = System.Drawing.Color.FromArgb(191, 246, 181);

                  }
                  else
                  {
                      if (ViewState["CRO"] == null)
                      {
                          ViewState["CRO"] = "";
                      }
                      //binding the Hirearchy upto branch
                      dt = BLGlobalHierachy.GetAfterMembermaping(str1, ViewState["CRO"].ToString(), str2, HirearchyGv.Rows[rowindex].Cells[0].Text.ToString(), LoantypesDdl.SelectedValue);
                      DropDownList d2 = (DropDownList)HirearchyGv.Rows[rowindex + 1].FindControl("ddl1");
                      //(DropDownList)gr.FindControl("ddl1");
                      d2.DataSource = dt;
                      d2.DataTextField = "CURRENT_NAME";
                      d2.DataValueField = "CURRENT_ID";
                      d2.DataBind();
                      d2.Items.Insert(0, "--Select--");
                      d2.BackColor = System.Drawing.Color.FromArgb(191, 246, 181);
                  }


              }
              else
              {
                  if (Convert.ToInt32(HirearchyGv.Rows[rowindex].Cells[3].Text.ToString()) == 9)
                  {
                      // Bind Group Members

                      if (LoantypesDdl.SelectedValue == "1" || LoantypesDdl.SelectedValue == "2")
                      {
                          string ParentID = ViewState["CenterCode"].ToString().Trim();
                          string CurrentID = d1.SelectedValue;
                          ViewState["CurrentId"] = CurrentID.ToString().Trim();
                          int LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          string CroName = ViewState["CRO"].ToString().Trim();
                          DataTable dt1 = new DataTable();
                          dt1 = BLGlobalHierachy.GetGroupMemersDis(ParentID, CurrentID, LoanTypeId, CroName);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = "MEMBER_NAME";
                          MemberNameCmbox.DataValueField = "MEMBER_ID";
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert(0, "--select--");
                          LoadAllGroupLoans();
                      }
                      if (LoantypesDdl.SelectedValue == "4")
                      {
                          string ParentID = ViewState["VillageCode"].ToString().Trim();
                          string CurrentID = d1.SelectedValue;
                          ViewState["CurrentId"] = CurrentID.ToString().Trim();
                          int LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          string CroName = ViewState["CRO"].ToString().Trim();
                          DataTable dt1 = new DataTable();
                          dt1 = BLGlobalHierachy.GetGroupMemersDis(ParentID, CurrentID, LoanTypeId, CroName);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = "MEMBER_NAME";
                          MemberNameCmbox.DataValueField = "MEMBER_ID";
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert(0, "--select--");
                          LoadAllGroupLoans();
                      }


                  }
                  if (Convert.ToInt32(HirearchyGv.Rows[rowindex].Cells[3].Text.ToString()) == 7)
                  {
                      if (LoantypesDdl.SelectedValue == "3")
                      {
                          string ParentID = ViewState["BranchCode"].ToString().Trim();
                          string CurrentID = d1.SelectedValue;
                          ViewState["CurrentId"] = CurrentID.ToString().Trim();
                          string CroName = ViewState["CRO"].ToString().Trim();
                          int LoanTypeId = Convert.ToInt32(LoantypesDdl.SelectedValue);
                          DataTable dt1 = new DataTable();
                          dt1 = BLGlobalHierachy.GetVillagememersDis(ParentID, CurrentID, CroName, LoanTypeId);
                          MemberNameCmbox.DataSource = dt1;
                          MemberNameCmbox.DataTextField = "MEMBER_NAME";
                          MemberNameCmbox.DataValueField = "MEMBER_ID";
                          MemberNameCmbox.DataBind();
                          MemberNameCmbox.Items.Insert(0, "--select--");
                          LoadAllGroupLoans();
                      }

                  }
              }

          }
          catch (Exception ex)
          {
              log.Error(ex.Message, ex);
          }


      }

解决方案

First, After regional bind area, unit and branch in one time and if any one not have data then it will show only select

Second, based on member id fetch branch, after that based on branch fetch unit after that area if unit or area not have items then fetch regional and set selected value to saved value in database based on that membership id and so on.


这篇关于下拉动态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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