[英]How to update all the 3 dropdownlist in update panel
所以我正在做這個級聯下拉列表控件來獲取狀態,當國家下拉列表被更改,同樣,讓城市進行狀態更改...所以我得到整個頁面刷新..所以我嘗試更新面板但只有國家變得填充國家更改但由於某種原因,我無法改變城市。現在的狀態變化代碼我已經改變了城市,但我希望所有下拉列表都在更新面板中工作,即選擇國家,州應該填充和選擇州,城市應該填充..我正在附加代碼
<div class="row">
<div class="medium-6 columns">
<div class="input-single valid">
<asp:DropDownList ID="ddlCountry" runat="server" TabIndex="13" AutoPostBack="true" OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged"></asp:DropDownList>
<small class="error">Country is required.</small>
</div>
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="medium-6 columns">
<div id="countrySubdivisionDiv" class="input-single">
<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlState_SelectedIndexChanged"></asp:DropDownList>
<small class="error">Region/State/Province is required.
</small>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="row">
<div class="medium-6 columns">
<div class="input-single">
<asp:UpdatePanel ID="fdf" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlCity" runat="server" maxlength="50"></asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
<small class="error">City is required.</small>
</div>
</div>
<div class="medium-6 columns">
<div class="input-single">
<asp:TextBox ID="txtPostalCode" runat="server" placeholder="Post Code" MaxLength="15" TabIndex="16"></asp:TextBox>
<small class="error">Postcode is required.</small>
</div>
</div>
</div>
</div>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateContinentsDropDownList();
}
lblCheckEmail.Visible = false;
}
private void PopulateContinentsDropDownList()
{
DataSet ds = Data.spGetCountries();
ddlCountry.DataSource = ds;
ddlCountry.DataTextField = "CountryName";
ddlCountry.DataValueField = "Country_Id";
ddlCountry.DataBind();
ListItem liCountry = new ListItem("Select Country");
ddlCountry.Items.Insert(0, liCountry);
ListItem liState = new ListItem("Select State");
ddlState.Items.Insert(0, liState);
ListItem liCity = new ListItem("Select City");
ddlCity.Items.Insert(0, liCity);
ListItem liCountryCode = new ListItem("Country Code");
ddlCountrycode.Items.Insert(0, liCountryCode);
ddlState.Enabled = false;
ddlCity.Enabled = false;
}
protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlCountry.SelectedValue == "")
{
ddlState.SelectedIndex = 0;
ddlCity.SelectedIndex = 0;
ddlState.Enabled = false;
ddlCity.Enabled = false;
ddlCountrycode.SelectedIndex = 0;
ddlCountrycode.Enabled = false;
}
else
{
ddlState.Enabled = true;
DataSet ds = Data.spGetStateByCountryId(Convert.ToInt32(ddlCountry.SelectedValue));
ddlState.DataSource = ds;
ddlState.DataTextField = "StateName";
ddlState.DataValueField = "State_Id";
ddlState.DataBind();
DataSet ds1 = Data.spGetCountrycode(Convert.ToInt32(ddlCountry.SelectedValue));
ddlCountrycode.DataSource = ds1;
ddlCountrycode.DataTextField = "CountryCode";
ddlCountrycode.DataValueField = "Country_Id";
ddlCountrycode.DataBind();
//ddlCity.SelectedIndex = 0;
//ddlCity.Enabled = false;
}
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlState.SelectedValue == "")
{
ddlCity.SelectedIndex = 0;
ddlCity.Enabled = false;
}
else
{
ddlCity.Enabled = true;
DataSet ds = Data.spGetCityByStateId(Convert.ToInt32(ddlState.SelectedValue));
ddlCity.DataSource = ds;
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "City_Id";
ddlCity.DataBind();
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
DataSet ds = Data.spCheckEmail(txtEmail.Text);
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["Email_Id"].ToString() == txtEmail.Text)
{
lblCheckEmail.Visible = true;
lblCheckEmail.Text = "Email id already exists , please enter another email id.";
}
else
{
lblCheckEmail.Text = "";
lblCheckEmail.Visible = false;
}
}
else
{
Data objpro = new Data();
string a = ddlYear.SelectedValue;
string b = ddlMonth.SelectedValue;
string c = ddlDate.SelectedValue;
string DateofBirth = ddlDate.SelectedValue + "/" + ddlMonth.SelectedValue + "/" + ddlYear.SelectedValue;
objpro.DOB = DateofBirth;
objpro.Email_Id = txtEmail.Text;
objpro.Password = txtPassword.Text;
objpro.Acc_Currency = ddlCurrency.SelectedValue;
objpro.FirstName = txtFirstName.Text;
objpro.LastName = txtLastName.Text;
objpro.Gender = ddlGender.SelectedValue;
objpro.Address1 = txtAddress1.Text;
objpro.Address2 = txtAddress2.Text;
objpro.Country = ddlCountry.SelectedItem.Text;
objpro.Region_State = ddlState.SelectedItem.Text;
objpro.City = ddlCity.SelectedItem.Text;
objpro.PostalCode = txtPostalCode.Text;
objpro.Phone_Extension = ddlCountrycode.SelectedValue;
objpro.PhoneNo = txtPhoneno.Text;
if (Request.QueryString["Account_Id"] != null)
{
ID = Request.QueryString["Account_Id"];
}
else
{
ID = "0";
}
objpro.Account_Id = Convert.ToInt32(ID);
int k = Data.CustomerInsert(objpro);
Random randno = new Random();
int cc = randno.Next(000000, 999999);
string Uniqueid = "U" + cc;
if (k != -1)
{
Data.spStoreUniqueId(k, Uniqueid);
}
Session["UniqueId"] = Uniqueid;
Session["Email"] = txtEmail.Text;
Page.ClientScript.RegisterStartupScript(Page.GetType(), "alert", "alert('Data Saved Successfully');window.location='JoininForm.aspx';", true);
Response.Redirect("Welcome.aspx");
}
}
protected void txtEmail_TextChanged(object sender, EventArgs e)
{
DataSet ds = Data.spCheckEmail(txtEmail.Text);
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["Email_Id"].ToString() == txtEmail.Text)
{
lblCheckEmail.Visible = true;
lblCheckEmail.Text = "Email id already exists , please enter another email id.";
}
}
}
同時附加圖像。 包含國家城市和州的屏幕截圖的圖像
感謝你們的支持
嘗試以下代碼。 用以下更新面板替換您的更新面板
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="medium-6 columns">
<div id="countrySubdivisionDiv" class="input-single">
<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlState_SelectedIndexChanged"></asp:DropDownList>
<small class="error">Region/State/Province is required.
</small>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlCountry" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="fdf" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlCity" runat="server" maxlength="50"> </asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlState" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.