DropDown States应该反映DropDown Country Selected [英] DropDown States should Reflect on DropDown Country Selected

查看:46
本文介绍了DropDown States应该反映DropDown Country Selected的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的朋友们,

我在网格视图控件编辑项目模板下选择ddlCountry时遇到了困难ddlState应该根据国家/地区的选择弹出它没有发生请点亮它。



我的代码在下面..

Dear Friends,
I was struck in between while selecting the ddlCountry under gridview control edit item template the ddlState Should pop up according to country selection it is not happening please fin it out.

My code is below..

RowDataBound Im binding.. protected void GrdView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        DataRowView drv = e.Row.DataItem as DataRowView;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if ((e.Row.RowState & DataControlRowState.Edit) > 0)
            {
                DropDownList ddlCountry = (DropDownList)e.Row.FindControl("ddlCountry");
                DropDownList ddlState = (DropDownList)e.Row.FindControl("ddlState");
                DataSet dsGrdValues = BindGridView();
                DataSet dsCountrys = BindCountrys();
                string SelCountry = drv[4].ToString();
                string SelState = drv[5].ToString();
                ddlCountry.DataSource = dsCountrys;
                ddlCountry.DataTextField = "Name";
                ddlCountry.DataValueField = "Id";
                ddlCountry.DataBind();
                for (int i = 0; i < ddlCountry.Items.Count; i++)
                {
                    if (ddlCountry.Items[i].Text.Trim().CompareTo(SelCountry.Trim())==0)
                    {
                        ddlCountry.SelectedIndex = i;
                        break;
                    }
                }
                DataSet dsStates = BindStates(ddlCountry.SelectedValue);
                ddlState.DataSource = dsStates;
                ddlState.DataTextField = "Name";
                ddlState.DataValueField = "Id";
                ddlState.DataBind();
                for (int i = 0; i < ddlState.Items.Count; i++)
                {
                    if (ddlState.Items[i].Text.Trim().CompareTo(SelState.Trim()) == 0)
                    {
                        ddlState.SelectedIndex = i;
                        break;
                    }
                }
            }
        }
    }





这是我的GridView ddlCountry选择更改事件,我没有获得有关国家/地区更改的具体状态..



This is my GridView ddlCountry Selected change event where i am not getting the specific states on country changes..

protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            DropDownList Country = (DropDownList)sender;
            //DropDownList State = Country.Parent as DropDownList;
            //State = new DropDownList();
            GridViewRow row = (GridViewRow)(Country.Parent.Parent);
            Country.DataTextField = "Name";
            string CCode = Country.SelectedItem.Value;
            DataSet dsGetStates = BindStates(CCode);
            ddlState1.DataSource = dsGetStates;
            ddlState1.DataTextField = "Name";
            if (dsGetStates.Tables[0].Rows.Count > 0)
            {
                //State.DataSource = dsGetStates;
                //State.DataTextField = "Name";
                //State.DataValueField = "Id";
                //State.DataBind();
            }
            else
            {
                //State.DataSource = null;
                //State.Items.Clear();
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }





这是我的页面设计.aspx代码



Here is my Page Design .aspx Code

<pre lang="xml"><asp:TemplateField HeaderText="Country">
  <ItemTemplate>
  <asp:Label ID="lblCountry" runat="server" Text='<%#Eval("Country") %>'></asp:Label>
  </ItemTemplate>
  <EditItemTemplate>
  <asp:DropDownList ID="ddlCountry" onselectedindexchanged="ddlCountry_SelectedIndexChanged" runat="server" AutoPostBack="True"></asp:DropDownList>
  </EditItemTemplate>
  <FooterTemplate>
  <asp:DropDownList ID="ddlNewCountry" runat="server"></asp:DropDownList>
  </FooterTemplate>
  </asp:TemplateField>

  <asp:TemplateField HeaderText="State">
  <ItemTemplate>
  <asp:Label ID="lblState" runat="server" Text='<%#Eval("State") %>'></asp:Label>
  </ItemTemplate>
  <EditItemTemplate>
  <asp:DropDownList ID="ddlState" runat="server"></asp:DropDownList>
  </EditItemTemplate>
  <FooterTemplate>
  <asp:DropDownList ID="ddlNewState" runat="server"></asp:DropDownList>
  </FooterTemplate>
  </asp:TemplateField>

推荐答案

   DropDownList ddlState = (DropDownList)row.FindControl("ddlState");
if (dsGetStates.Tables[0].Rows.Count > 0)
          {
              ddlState.DataSource = dsGetStates;
              ddlState.DataTextField = "Name";
              ddlState.DataBind();
          }


这篇关于DropDown States应该反映DropDown Country Selected的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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