我有ddlCountry下拉列表和ddlState下拉列表。 ddlState在更新面板中。在選擇國家時,我使用ddlCountry的selectedindexchanged事件填充了它的狀態。我已經在綁定後添加了起始值「-1」,並且如果dropdownlist內容是[Select]值「-1」,則檢查Javascript,然後提醒並返回false。DROPDOWNLIST(ddlState)價值損失時接取的Javascript AsyncPostBackTrigger後更新面板
但驗證是正確的ddlCountry和ddlState其值將成爲AJAX更新面板火災和驗證失敗後的「空白」。
我應該如何解決它們?我不知道爲什麼ddlState值在AsyncPostBackTrigger後丟失。
//javascript validation
function validateForm()
{
if (ddlCountry .value == "-1")
{
alert("Country should not be blank.");
ddlCountry .focus();
return false;
}
if (ddlState .value == "-1")
{
alert("State should not be blank.");
ddlState .focus();
return false;
}
return true;
}
//Aspx code
<asp:DropDownList ID="ddlCountry " runat="server" CssClass="csstextbox" Width="207px"
AutoPostBack="true" OnSelectedIndexChanged="ddlCountry _SelectedIndexChanged">
</asp:DropDownList>
<asp:UpdatePanel ID="updatePanelState" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlState " runat="server" CssClass="csstextbox" Width="177px">
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlCountry" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
//Code Behind
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
BindCountry();
}
}
protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
int countryID = Convert.ToInt32(ddlCountry.SelectedItem.Value);
ifcountryID == -1)
{
return;
}
strSQL = @"SELECT State_ID,State_Desc
FROM State_Master
WHERE countryID = '" + countryID + @"';
DataTable dataTableState = null;
dataTableState = objSqlDbComm.ExecuteDatasetQuery(strSQL).Tables[0];
var dictioneryState = new Dictionary<int, string>();
foreach(DataRow dr in dataTableStudy.Rows)
{
dictioneryState .Add(Convert.ToInt32(dr["State_ID"]), dr["State_Desc"].ToString());
}
ddlState.DataTextField = "Value";
ddlState.DataValueField = "Key";
ddlState.DataSource = dictioneryState;
ddlState.DataBind();
ddlState.Items.Insert(0, new ListItem("[Select]", "-1"));
ddlState.Items[0].Selected = true;
}
DDL都必須是內部的UpdatePanel – skhurams
我HVE添加,但沒有工作 –
任何想法如何做THT –